【发布时间】:2018-07-20 15:25:41
【问题描述】:
我需要一个 SQL 表中的 count 总寄存器。
我有这样的状态:
SELECT
COUNT(CASE WHEN status = 'WAITING_MEASUREMENT' THEN 1 ELSE NULL END) as '1',
COUNT(CASE WHEN status = 'WAITING_WEIGHMENT' THEN 1 ELSE NULL END) as '2',
COUNT(CASE WHEN status = 'WAITING_DATA_ENTRY' THEN 1 ELSE NULL END) as '3',
COUNT(CASE WHEN status = 'WAITING_PICTURES' THEN 1 ELSE NULL END) as '4'
FROM product;
但是当我运行查询时,我在所有列中都有相同的结果。 查询有什么问题?
【问题讨论】:
-
添加示例数据和查询的其余部分,您的代码应该可以正常工作。
-
@AaronDietz 感谢您的指点。你是对的,他应该工作..删除答案。
-
所有列的结果如何?如果你得到 0 那么你在那里没有那些状态。或者像 Obiwan 说的那样,那些不是您正在寻找的状态。
-
Unable to replicate 请分享一些出现此问题的示例数据。
-
我不确定当别名是字符串文字而不是带引号的标识符时 mysql 会发生什么......