如何在SQL中统计并排序数据表指定列的条目出现次数
该需求完全可以通过SQL实现,核心注意事项是带空格的字段名completed at需要用对应数据库的标识符转义符包裹,以下是不同主流数据库的适配写法:
- MySQL 环境(用反引号包裹带空格标识符):
SELECT COUNT(*) AS `Count`, `completed at` AS `Location` FROM completed WHERE `completed at` != 'blank entry' GROUP BY `completed at` ORDER BY `Count` DESC;
- PostgreSQL、SQLite 环境(用双引号包裹带空格标识符):
SELECT COUNT(*) AS "Count", "completed at" AS "Location" FROM completed WHERE "completed at" != 'blank entry' GROUP BY "completed at" ORDER BY "Count" DESC;
- SQL Server 环境(用方括号包裹带空格标识符):
SELECT COUNT(*) AS [Count], [completed at] AS [Location] FROM completed WHERE [completed at] != 'blank entry' GROUP BY [completed at] ORDER BY [Count] DESC;
以上语句会自动过滤blank entry的记录,仅统计三类目标值的出现频次,输出列名、排序规则完全匹配要求。
内容的提问来源于stack exchange,提问作者Lars
相关产品推荐
相关产品推荐

