sql - SQL:如何从表中最常见的值中获取 ID 数组?
问题描述
我在一列中的每个值的计数最多,如下所示:
SELECT col, COUNT(col)
FROM table
GROUP BY col
ORDER BY col DESC;
但我想添加另一列,其中具有这些值的记录的 ID 在数组中。
例如,如果“blueberry”是最常见的值,它旁边的单元格应该显示这些记录的 id,例如 - [1, 21, 123]
解决方案
您可以为每个col获取一个数组:
SELECT col, COUNT(*), ARRAY_AGG(id) as ids
FROM table
GROUP BY col
ORDER BY COUNT(*) DESC;
您可以获取上述查询的第一行:
SELECT col, COUNT(*), ARRAY_AGG(id) as ids
FROM table
GROUP BY col
ORDER BY COUNT(*) DESC
FETCH FIRST 1 ROW ONLY;
这是做你想做的吗?
推荐阅读
- javascript - 在 ES6 可迭代对象上使用 JS 数组函数
- gcc - 展开数据部分以使用外部存储器
- linux - 复制文件和一个目录
- python - 使用列表中的项目创建数据框
- oracle-apex - Apex 将实时重定向的克隆副本复制到实时应用程序服务器
- java - ^M 个字符显示在使用 opencsv.CSVWriter 生成的 CSV 文件中
- visual-studio-2019 - 访问冲突异常的 testhost.exe 粉碎
- json - 没有密钥的打字稿 JSON 数据
- mongodb - MongoDB - 形成一个有条件的查询
- java - 通过构造函数传递数组适配器 | 列表显示