【问题标题】:MYSQL how to count how many hours where data existsMYSQL如何计算数据存在多少小时
【发布时间】:2015-08-25 10:54:35
【问题描述】:

我正在尝试计算数据库中一天中有多少小时有数据。

我使用这个查询:

SELECT
HOUR(date) AS `hour`, COUNT(date)
FROM fb_posts 
WHERE DATE(date) = CURDATE() - INTERVAL 1 DAY
GROUP BY hour

I got the query from here

示例:

hour           COUNT(date)
00             55
01             2
02             33

现在我想计算有多少小时的数据? 上面的例子应该输出值 3,因为在 00、01 和 02 小时有数据

有些东西想像这样添加 COUNT(hour):

SELECT
HOUR(date) AS `hour`, COUNT(date)**,COUNT(hour)**
FROM fb_posts 
WHERE DATE(date) = CURDATE() - INTERVAL 1 DAY
GROUP BY hour

【问题讨论】:

    标签: mysql date count where hour


    【解决方案1】:
    select count(*) 
    from
    (
      SELECT HOUR(date) AS hour
      FROM fb_posts 
      WHERE DATE(date) = CURDATE() - INTERVAL 1 DAY
      GROUP BY hour
    ) tmp
    

    【讨论】:

      【解决方案2】:

      你正在寻找count(distinct column)https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_count-distinct

        SELECT count(distinct HOUR(date)) AS distinct_hour_count
        FROM fb_posts 
        WHERE DATE(date) = CURDATE() - INTERVAL 1 DAY
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-16
        • 2020-07-05
        • 2019-08-29
        • 2012-09-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多