oracle - Oracle Count 基于 key 的动态组数
问题描述
考虑表格:
+--------+-------+
| id | value |
+--------+-------+
| 1 | A |
| 1 | B |
| 2 | A |
| 2 | B |
| 3 | A |
| 3 | B |
| 3 | C |
| 4 | A |
+--------+-------+
我想values
根据id
列来计算组。结果将如下所示:
+--------+---------+
| count | value |
+--------+---------+
| 2 | A B |
| 1 | A B C |
| 1 | A |
+--------+---------+
请注意,列的基数value
是动态的。
我尝试过使用一些子查询进行旋转,但我不确定我是否以正确的方式进行。
我感谢提供的任何帮助。
解决方案
with src_data as (
select 1 f1, 'A' f2 from dual
union all
select 1, 'B' from dual
union all
select 2, 'B' from dual
union all
select 2, 'A' from dual
union all
select 3, 'A' from dual
union all
select 3, 'B' from dual
union all
select 3, 'C' from dual
union all
select 4, 'A' from dual
)
select count(1) cnt, value
from (
select f1, listagg(f2, ' ') within group(order by f2) value
from src_data
group by f1
)
group by value
order by cnt desc, value
推荐阅读
- python - 通过 scapy,在手动编辑数据包时自动更新数据包 TCP 序列和确认号以及 IP 层长度
- python - 在 Django CreateView 中,使用类方法生成数据以在 get_context_data() 和 form_valid() 中使用
- php - FPDF 某些图像打印失真
- mysql - MySQL C API。从表中检索信息的问题解决方案
- windows - Powershell - 通过 Web 界面调用新网站 cmdlet 时不起作用
- azure - Azure 数据工厂自动重新触发失败的管道
- phpstorm - 在 PhpStorm 代码检查中忽略函数的多个定义
- macos - 使用--network = host在MacOS上运行docker容器时如何访问主机上的端口?
- python - 在熊猫数据框中附加两列的最小值
- python - 我正在尝试为 python3.7 获取项目