【发布时间】:2018-04-12 20:57:00
【问题描述】:
我想获取表格的第 5、50、95 个百分位数
SELECT col1, col2, col3, AVG(col4), STD(col4),
PERCENTILE_CONT(0.05) WITHIN GROUP (ORDER BY col4)
OVER (PARTITION BY col1, col2, col3) as 5th_percentile,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY col4)
OVER (PARTITION BY col1, col2, col3) as 50th_percentile,
PERCENTILE_CONT(0.95) WITHIN GROUP (ORDER BY col4)
OVER (PARTITION BY col1, col2, col3) as 95th_percentile
FROM table
GROUP BY col1, col2, col3
LIMIT 100
我最终得到的是 5th_percentile == 50th_percentile == 95th_percentile
AVG(col4) STD(col4) 5th_percentile 50th_percentile 95th_percentile
300.000000 0.000000 300.000000 300.000000 300.000000
67.076600 16.968851 82.031792 82.031792 82.031792
66.166136 11.452172 78.348846 78.348846 78.348846
544.262809 68.269014 605.797302 605.797302 605.797302
22.523138 1.820358 24.000000 24.000000 24.000000
怎么了?
编辑:数据库是 MemSQL
【问题讨论】:
-
哪个dbms??????
SQL只是很多厂商使用的一种语言!! -
它使用 memsql,我相信它的语法与 MySQL 相似
-
然后将标签添加到您的问题中。你不想要任何东西给你一个解决方案,但你不能使用它,因为它用于错误的 dbms。
-
刚刚做到了!不过,我还没有在 stackoverflow 上看到太多 memsql 解决方案,所以我不想阻止任何不熟悉的人回答他们将在他们的 dbms 上做什么
标签: sql singlestore