SUMMARIZE
命令可以用于轻松计算表或查询的多个聚合值。SUMMARIZE
命令启动一个查询,计算所有列的多个聚合值(min
, max
, approx_unique
, avg
, std
, q25
, q50
, q75
, count
),并返回这些值以及列名、列类型和列中 NULL
值的百分比。
Usage
为了总结表格的内容,使用SUMMARIZE
后跟表格名称。
SUMMARIZE tbl;
为了总结一个查询,请在查询前加上SUMMARIZE
。
SUMMARIZE SELECT * FROM tbl;
Example
以下是使用tpch
扩展生成的TPC-H SF1
表的lineitem
表上的SUMMARIZE
示例。
INSTALL tpch;
LOAD tpch;
CALL dbgen(sf = 1);
SUMMARIZE lineitem;
列名 | 列类型 | 最小值 | 最大值 | 近似唯一值 | 平均值 | 标准差 | 25%分位数 | 50%分位数 | 75%分位数 | 计数 | 空值百分比 |
---|---|---|---|---|---|---|---|---|---|---|---|
l_orderkey | INTEGER | 1 | 6000000 | 1508227 | 3000279.604204982 | 1732187.8734803519 | 1509447 | 2989869 | 4485232 | 6001215 | 0.0% |
l_partkey | INTEGER | 1 | 200000 | 202598 | 100017.98932999402 | 57735.69082650496 | 49913 | 99992 | 150039 | 6001215 | 0.0% |
l_suppkey | INTEGER | 1 | 10000 | 10061 | 5000.602606138924 | 2886.9619987306114 | 2501 | 4999 | 7500 | 6001215 | 0.0% |
l_linenumber | INTEGER | 1 | 7 | 7 | 3.0005757167506912 | 1.7324314036519328 | 2 | 3 | 4 | 6001215 | 0.0% |
l_quantity | DECIMAL(15,2) | 1.00 | 50.00 | 50 | 25.507967136654827 | 14.426262537016918 | 13 | 26 | 38 | 6001215 | 0.0% |
l_extendedprice | DECIMAL(15,2) | 901.00 | 104949.50 | 923139 | 38255.138484656854 | 23300.43871096221 | 18756 | 36724 | 55159 | 6001215 | 0.0% |
l_discount | DECIMAL(15,2) | 0.00 | 0.10 | 11 | 0.04999943011540163 | 0.03161985510812596 | 0 | 0 | 0 | 6001215 | 0.0% |
l_tax | DECIMAL(15,2) | 0.00 | 0.08 | 9 | 0.04001350893110812 | 0.025816551798842728 | 0 | 0 | 0 | 6001215 | 0.0% |
l_returnflag | VARCHAR | A | R | 3 | NULL | NULL | NULL | NULL | NULL | 6001215 | 0.0% |
l_linestatus | VARCHAR | F | O | 2 | NULL | NULL | NULL | NULL | NULL | 6001215 | 0.0% |
l_shipdate | DATE | 1992-01-02 | 1998-12-01 | 2516 | NULL | NULL | NULL | NULL | NULL | 6001215 | 0.0% |
l_commitdate | DATE | 1992-01-31 | 1998-10-31 | 2460 | NULL | NULL | NULL | NULL | NULL | 6001215 | 0.0% |
l_receiptdate | DATE | 1992-01-04 | 1998-12-31 | 2549 | NULL | NULL | NULL | NULL | NULL | 6001215 | 0.0% |
l_shipinstruct | VARCHAR | COLLECT COD | TAKE BACK RETURN | 4 | NULL | NULL | NULL | NULL | NULL | 6001215 | 0.0% |
l_shipmode | VARCHAR | 航空 | 卡车 | 7 | NULL | NULL | NULL | NULL | NULL | 6001215 | 0.0% |
l_comment | VARCHAR | Tiresias | zzle? furiously iro | 3558599 | NULL | NULL | NULL | NULL | NULL | 6001215 | 0.0% |
在子查询中使用 SUMMARIZE
SUMMARIZE
可以用作子查询。这允许从摘要中创建表,例如:
CREATE TABLE tbl_summary AS SELECT * FROM (SUMMARIZE tbl);
汇总远程表
可以通过httpfs
扩展使用SUMMARIZE TABLE
语句来汇总远程表。例如:
SUMMARIZE TABLE 'https://blobs.duckdb.org/data/Star_Trek-Season_1.csv';