首页/数据/NoSQL 速查/SELECT 查询基础
ClickHouse56 条

SELECT 查询基础

SELECT 按列式读取、只扫描用到的列:支持表达式、别名、WHERE/GROUP BY/HAVING/ORDER BY/LIMIT 与丰富的内置函数,聚合与窗口计算是大数据量下的常见用法。

NoSQL 速查数据更新于 2026-10-12
基本结构SELECT expr [[AS] alias] FROM table [WHERE] [GROUP BY] [HAVING] [ORDER BY] [LIMIT]
常用聚合count()、sum、avg、min、max、uniq、quantile
特色能力LIMIT BY 分组取前 N、WITH TOTALS、WINDOW 子句

示例

示例
SELECT
    toDate(ts) AS d,
    count() AS requests,
    round(avg(value), 2) AS avg_value
FROM metrics
WHERE ts >= now() - INTERVAL 7 DAY
GROUP BY d
ORDER BY d;
ClickHouse 不允许 SELECT 里用未参与 GROUP BY 的裸列(除 any/argMax 等聚合包裹外),分组口径要写清楚。

易错点

  • 对分区键做函数包装(WHERE toDate(ts) = today() 除外的情况)可能失去裁剪,尽量用范围条件
  • ORDER BY 无 LIMIT 的大排序会消耗大量内存,超过 max_bytes_before_external_sort 才落盘

数据来源与参考

  • ClickHouse Docs: SELECT
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌