目前我正在尝试选择一个格式化的日期并从这个列中计算它们 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'
然后它给了我这个结果:
计数只计算不同的值,但我希望它计算所有值。我知道这种类型的非重复计数有效,因为我也在其他地方使用它,但现在我还必须更改日期格式。
我希望你们知道我选择格式化日期和计数时间的方法。
最佳答案
您需要按照格式化的时间进行分组,而不是表格中的时间,这样所有具有相同小时的时间将被分组在一起进行计数。
GROUP BY Time
或者,由于格式化时间与表格列的小时相同,您可以:
GROUP BY HOUR(connectedOn)
顺便说一句,在使用 GROUP BY
时不需要使用 DISTINCT
。分组防止重复。事实上,您使用 DISTINCT
就好像它是一个函数一样,这表明您不了解它的工作原理。它不是适用于特定列的函数,而是适用于整个 SELECT
列表的关键字。
关于MYSQL - 选择格式化日期并计算格式化日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49680830/