【发布时间】:2021-05-09 13:40:08
【问题描述】:
我有:
| id | value |
|---|---|
| 1 | 123 |
| 1 | 124 |
| 1 | 125 |
| 2 | 126 |
| 2 | 127 |
| 2 | 127 |
| 3 | 128 |
| 3 | 128 |
| 3 | 128 |
我想要一个像这样的聚合:
| id | distinct_count | total_distinct | percentage |
|---|---|---|---|
| 1 | 3 | 6 | 0.5 |
| 2 | 2 | 6 | 0.33 |
| 3 | 1 | 6 | 0.167 |
我尝试应用这样的窗口覆盖子句:
SELECT id,
COUNT(DISTINCT value) AS distinct_count,
COUNT(DISTINCT value) OVER () AS total_distinct,
COUNT(DISTINCT value) / COUNT(DISTINCT value) OVER () AS percentage
FROM have
GROUP BY id
但它似乎还没有实现。
有没有办法在没有连接的情况下实现这一点?
【问题讨论】:
-
你得到了什么结果?
-
我遇到了一个错误.. 尚不支持窗口函数参数中的 DISTINCT
-
将此 SO 视为有效的 SUM 聚合示例:stackoverflow.com/questions/46909494/…
-
为什么要问这个问题?如果你能在 10 分钟内自己找到答案?
-
不确定你的意思@Luuk。我找不到答案,因此 q