我正在尝试制定一个查询,但它不断给我带来意想不到的结果。
我需要做的是:
从我的表中选择所有不同的值,其中 unix 时间戳大于等于过去 24 小时,然后按照条目数量最多的一个对这些结果进行排序。
我已经管理了时间部分:
SELECT DISTINCT(column_name) as myValue from table_name WHERE time_column >= unix_timestamp(CURRENT_TIMESTAMP, INTERVAL 1 DAY)
这按预期工作。然后我打算使用 PHP 对结果进行排序等等,但我希望在这方面使用 SQL 的强大功能。
有什么想法可以扩展上面的查询来封装不同column_name值的数量计数吗?然后还要根据每个值中有多少个值按顺序对其进行排序?
所以本质上我想得到这样的结果:
a unique ID | highest amount
a unique ID | second highest amount
a unique ID | lowest amount
最佳答案
我认为您想使用group by
来执行此查询:
SELECT column_name as myValue, count(*) as cnt
from table_name
WHERE time_column >= unix_timestamp(CURRENT_TIMESTAMP, INTERVAL 1 DAY)
GROUP BY column_name
ORDER BY cnt;
关于mysql - 选择日期戳在过去 24 小时内的所有不同值,并按总行数 ASC 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26463800/