gpt4 book ai didi

php - 按频率对 SQL 查询记录排序

转载 作者:可可西里 更新时间:2023-11-01 07:02:16 25 4
gpt4 key购买 nike

有什么方法可以根据某个值在列中出现的频率来对您从 SQL 查询中选择的记录进行排序吗?例如:如果有五个记录 where column = 'value1',三个 where column = 'value2',两个 where column = 'value3',有没有办法让结果先显示 'value1',然后显示 'value2' , 最后是 'value3'?

最佳答案

SELECT   `column`,
COUNT(`column`) AS `count`
FROM `table`
GROUP BY `column`
ORDER BY `count` DESC

快速 PoC:

mysql> CREATE TABLE `table` (`id` SERIAL, `column` char(6) NOT NULL, KEY `column_idx`(`column`));Query OK, 0 rows affected (0.01 sec)mysql> INSERT INTO `table` (`column`) VALUES ('value1'), ('value1'), ('value1'), ('value1'), ('value1'), ('value2'), ('value2'), ('value2'), ('value3'), ('value3');Query OK, 10 rows affected (0.00 sec)Records: 10  Duplicates: 0  Warnings: 0mysql> SELECT * FROM `table`;+----+--------+| id | column |+----+--------+|  1 | value1 ||  2 | value1 ||  3 | value1 ||  4 | value1 ||  5 | value1 ||  6 | value2 ||  7 | value2 ||  8 | value2 ||  9 | value3 || 10 | value3 |+----+--------+10 rows in set (0.00 sec)mysql> SELECT   `column`,    ->          COUNT(`column`) AS `count`    -> FROM     `table`    -> GROUP BY `column`    -> ORDER BY `count` DESC;+--------+-------+| column | count |+--------+-------+| value1 |     5 || value2 |     3 || value3 |     2 |+--------+-------+3 rows in set (0.00 sec)

关于php - 按频率对 SQL 查询记录排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8467997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com