【发布时间】:2020-04-29 11:22:37
【问题描述】:
我的表有一个名为 Speed(整数)的列,我需要在该列表中选择大于 25%、50%、... 值的值。
样本数据:
+-------+
| Speed |
+-------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
+-------+
期望的输出:
+--------+
| OUTPUT |
+--------+
| 3 |
| 5 |
| 8 |
+--------+
解释:
- 3 >= 列表中的 25% 数字
- 5 >= 列表中的 50% 数字
- 8 >= 列表中的 75% 数字
我认为我应该对数据进行排序,并执行以下操作:
SELECT speed
FROM my_table
WHERE speed IN (ROUND(0.25 * <total_row>), ROUND(0.50 * <total_row>),..)
但我不知道如何获得 <total_row> 参考。如果我可以SELECT COUNT(speed) AS total_row,然后再使用它,那就太好了。
非常感谢。
【问题讨论】:
-
Clickhouse 实现了非常有限的 SQL 子集。您还有其他可供数据库使用的选项吗?
-
我不知道为什么这个问题会被否决。
标签: sql select where-clause clickhouse