【问题标题】:Mysql query on a single tableMysql查询单表
【发布时间】:2015-02-01 20:23:39
【问题描述】:

我有一个包含日期时间、类型、度量的事务表。我想产生日期,计数,计数,类型=12,measure>20。

不知道该怎么做。

要知道日期,数,输入我会写 select date(datetime), count from table where type=12 group by date(datetime)

只是不确定如何添加第 3 列(按度量计数>20)。

我曾想过尝试左自连接或相关子查询。

感谢任何建议。

表名称警报
Col1 Alert_time(日期时间)
第 2 列 Alert_type(整数)
Col 3 度量(整数)

样本数据
2015/01/20 9:00|12|10
2015/01/20 8:00|12|30
2015/01/20 7:00|12|40
2015/01/21 5:00|13|30
2015/01/21 8:00|12|10

期望的输出
2015/01/20|3|2
2015/01/21|1|0

【问题讨论】:

  • 请提供您的表结构和一些示例数据。

标签: mysql sql select


【解决方案1】:

您可以对case 表达式执行count 操作:

SELECT   DATE(datetime),
         COUNT(*), 
         COUNT(CASE WHEN measure > 20 THEN 1 ELSE NULL END)
FROM     mytable
WHERE    type = 12 
GROUP BY date(datetime)

【讨论】:

    【解决方案2】:

    你可以这样查询。

    选择日期(日期时间), 数数(*), 计数(CASE WHEN measure > 20 THEN 1 ELSE 0 END) 来自我的表 WHERE 类型 = 12 按日期分组(日期时间)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-08
      • 2015-02-17
      • 1970-01-01
      • 1970-01-01
      • 2018-05-01
      • 2023-04-09
      相关资源
      最近更新 更多