我想根据子选择语句进行计数。
SELECT MONTH(Received), State, COUNT('id'), SUM(price) FROM Leads GROUP BY MONTH(Received), State
该查询有效并生成类似这样的内容
MONTH(Received) State COUNT('id') SUM(price)
4 CA 25 35
4 UT 13 8
我要计算的是有多少行的价格 > 0
这是我试过的查询
SELECT MONTH(Received), SUM(price), COUNT(`id`), (SELECT COUNT(*) as count FROM Leads WHERE Price > 0) as NumPaidLeads, State FROM Leads GROUP BY MONTH(Received), State
但是NumPaidLeads
统计整列,价格列是数字类型。
我做错了什么?
最佳答案
在您的案例中,如果要计算价格 > 0 的行数,您可以使用一个案例
SELECT MONTH(Received), State,
sum( case when price > 0 then 1 else 0 END) num_row_with_price, SUM(price)
FROM Leads
GROUP BY MONTH(Received), State
关于mysql - 基于内部选择的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47335579/