mysql - 选择日期戳在过去 24 小时内的所有不同值,并按总行数 ASC 排序

标签 mysql sql-order-by distinct unix-timestamp

我正在尝试制定一个查询,但它不断给我带来意想不到的结果。

我需要做的是:

从我的表中选择所有不同的值,其中 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/

相关文章:

php - 从 wordpress/woocommerce 搜索查询中获取不同的结果

mysql - 获取单个表中按单个列分组的三列的最小值

Mysql 表之间的关系 - 决定因素

python - 使用 Peewee 在 MariaDB 中强制执行 Not Null 字段

mysql order by 分为两个不同的部分

sql - 当多个记录对 "Order By"子句中定义的列具有相同值时,是否存在从数据库返回的隐式行顺序?

mysql - hibernate - 如何使用 Criteria 在选择中进行选择

mysql - 在mysql中使用group_concat显示按类别分隔的调查结果

mysql - 通过sql查询合并非空结果字段

MYSQL Concat 多行并连接多个表