MYSQL - 选择格式化日期并计算格式化日期

时间:2018-04-05 20:16:12

标签: mysql

目前我正在尝试选择格式化日期,并从此列here开始计算。当我执行此查询时:

SELECT DISTINCT(DATE_FORMAT('connectedOn',"%H:00:00")) AS 'Time' FROM 'connection' 

然后我得到格式化的所有日期和一次。然后当我添加这样的计数时:

SELECT DISTINCT(DATE_FORMAT('connectedOn',"%H:00:00")) AS 'Time', COUNT(*) AS 'TimeCounted' FROM 'connection' GROUP BY 'connectedOn'

然后它给了我这个结果:

enter image description here

计数仅计算不同的值,但我希望它计算所有值。我知道这种类型的独特计数有效,因为我也在其他地方使用它,但现在我还必须更改日期格式。

我希望你们和gals知道我选择格式化日期和计算时间的方法。

1 个答案:

答案 0 :(得分:1)

您需要按格式化的时间进行分组,而不是按表格中的时间分组,以便所有具有相同小时的时间将在计数中组合在一起。

GROUP BY Time

或者,由于格式化的时间与表格列的小时相同,您可以执行以下操作:

GROUP BY HOUR(connectedOn)

顺便说一句,使用DISTINCT时无需使用GROUP BY。分组可防止重复。事实上,你使用DISTINCT就好像它是一个函数,这表明你不明白它是如何工作的。它不是适用于特定列的函数,它是适用于整个SELECT列表的关键字。