什么是最简单的查询来显示每列中的唯一值及其计数?

时间:2014-07-08 21:05:56

标签: oracle netezza

让我们考虑一下这样的表:

     id   name  addr_line 1    addr_line_2  rec_ins_dt   rec_updt_dt

我想按如下方式显示输出:

     rec_ins_dt  rec_ins_dt_count  rec_updt_dt  rec_updt_dt_count

如何使用单个查询实现此结果?我知道这可以通过创建临时表然后将两个临时表连接在一起来完成,但我想使用单个查询。 以下是执行此查询时的其他限制:

输入数据:10亿行 内存:4 GB

请将平台视为Oracle或Netezza。感谢您的投入。

1 个答案:

答案 0 :(得分:1)

SELECT 
    rec_ins_dt , COUNT(*) OVER (PARTITION BY rec_ins_dt) AS rec_ins_dt_count,
    rec_updt_dt , COUNT(*) OVER (PARTITION BY rec_updt_dt) AS rec_ins_dt_count
FROM <your-table>;

Oracle版本