mysql - 基于内部选择的计数

标签 mysql sql

我想根据子选择语句进行计数。

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/

相关文章:

php - 选择评论最多的帖子以及子帖子和父帖子

php - select2_from_ajax_multiple 优化 Laravel 的查询

mysql - SQL 一列中的多个值

python - 异常值 : ('08001' , '[08001] [unixODBC][FreeTDS][SQL Server]Unable to connect to data source (0) (SQLDriverConnect)' )

php - 在没有任何数据库配置文件的情况下处理表前缀

mysql - 需要对列中的某些日期值进行计数

mysql - IN 中的 SELECT 语句出现问题

mysql - 如何将 SQL 查询中的列信息存储到字符串列表中?

python - 在MySQL-Python中使用INSERT INTO语句的语法错误

mysql - 从 MySQL 中检索时间为 HH :MM format