【问题标题】:mysql 'case' with multiple 'WHEN' values具有多个 'WHEN' 值的 mysql 'case'
【发布时间】:2013-02-07 13:53:22
【问题描述】:

我有一个查询需要对其他 2 列为真的列进行计数。 当'DealerName' like '%MINI%' AND 'DealerContact_Y' = 1 时,我需要计算'DealerName'

但我不确定语法。此查询产生错误

SELECT DealerName,
       count(DealerShipId) as dealersContacted,
       CASE WHEN
       DealerName LIKE "%MINI%", WHEN DealerContact_Y = 1
       THEN Count(DealerContact_Y) END as Mini_contacted_yes,
       Campaign, 
       DealerId 
       FROM tblsummaryResults

有没有办法在 case 语句中执行多个 WHENS?

【问题讨论】:

    标签: mysql case


    【解决方案1】:

    你可以用DealerName LIKE '%MINI%' AND DealerContact_Y = 1这样写:

    SELECT DealerName,
      count(DealerShipId) as dealersContacted,
      count(CASE 
              WHEN DealerName LIKE '%MINI%' 
                  AND DealerContact_Y = 1
              THEN DealerContact_Y END) as Mini_contacted_yes,
      Campaign, 
      DealerId 
    FROM tblsummaryResults
    

    【讨论】:

    • 非常感谢,这似乎有效,我会在系统允许的情况下尽快接受答案。
    【解决方案2】:

    所以,像这样计算:

    COUNT(
      IF(DealerName LIKE "%MINI%" AND DealerContact_Y = 1, DealerContact_Y, NULL)
    ) AS Mini_contacted_yes
    

    【讨论】:

      猜你喜欢
      • 2012-04-29
      • 2021-11-04
      • 2012-09-13
      • 2015-09-12
      • 1970-01-01
      • 2014-05-15
      • 1970-01-01
      • 2019-11-26
      • 1970-01-01
      相关资源
      最近更新 更多