目前我正在尝试选择格式化日期,并从此列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'
然后它给了我这个结果:
计数仅计算不同的值,但我希望它计算所有值。我知道这种类型的独特计数有效,因为我也在其他地方使用它,但现在我还必须更改日期格式。
我希望你们和gals知道我选择格式化日期和计算时间的方法。
答案 0 :(得分:1)
您需要按格式化的时间进行分组,而不是按表格中的时间分组,以便所有具有相同小时的时间将在计数中组合在一起。
GROUP BY Time
或者,由于格式化的时间与表格列的小时相同,您可以执行以下操作:
GROUP BY HOUR(connectedOn)
顺便说一句,使用DISTINCT
时无需使用GROUP BY
。分组可防止重复。事实上,你使用DISTINCT
就好像它是一个函数,这表明你不明白它是如何工作的。它不是适用于特定列的函数,它是适用于整个SELECT
列表的关键字。