博客
关于我
presto grouping操作
阅读量:665 次
发布时间:2019-03-15

本文共 1958 字,大约阅读时间需要 6 分钟。

Analyzing the grouping operation in SQL queries is essential for understanding how data is aggregated and grouped. The grouping function is particularly useful when combined with GROUPING SETS, ROLLUP, CUBE, or GROUP BY, as it helps in specifying the columns to be considered during the grouping process.

The primary purpose of the grouping operation is to generate a binary vector (or bitmask) where each bit represents the presence or absence of a specific column in the grouping set. When a column is present in the group, its corresponding bit is set to 0, and if it is absent, the bit is set to 1. These binary values are then converted into a decimal number, providing a clear and concise indication of which columns are included in the group.

For instance, consider the following query:

SELECT origin_state, origin_zip, destination_state, sum(package_weight), grouping(origin_state, origin_zip, destination_state) FROM shipping GROUP BY GROUPING SETS ((origin_state), (origin_state, origin_zip), (destination_state));

In this example, the grouping() function is applied to three columns: origin_state, origin_zip, and destination_state. The resulting bitmask will be a 3-bit number. If all three columns are present in the group, the bitmask will be 001, which converts to the decimal value 1. If only origin_state is present, the bitmask is 011 (decimal 3), and so on.

It's important to note that the grouping() function must be combined with one of the specified grouping functions and that its parameters must exactly match those used in the corresponding GROUPING SETS, ROLLUP, CUBE, or GROUP BY clause. This ensures that the correct columns are considered during the grouping process.

For a more detailed analysis, you can refer to the documentation or examples provided by your SQL dialect. Always ensure that the columns specified in the grouping() function match those in the corresponding grouping clause to avoid errors or incorrect results.

转载地址:http://qqsmz.baihongyu.com/

你可能感兴趣的文章
MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
查看>>
Mysql: 对换(替换)两条记录的同一个字段值
查看>>
mysql:Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘解决方法
查看>>
MYSQL:基础——3N范式的表结构设计
查看>>
MYSQL:基础——触发器
查看>>
Mysql:连接报错“closing inbound before receiving peer‘s close_notify”
查看>>
mysqlbinlog报错unknown variable ‘default-character-set=utf8mb4‘
查看>>
mysqldump 参数--lock-tables浅析
查看>>
mysqldump 导出中文乱码
查看>>
mysqldump 导出数据库中每张表的前n条
查看>>
mysqldump: Got error: 1044: Access denied for user ‘xx’@’xx’ to database ‘xx’ when using LOCK TABLES
查看>>
Mysqldump参数大全(参数来源于mysql5.5.19源码)
查看>>
mysqldump备份时忽略某些表
查看>>
mysqldump实现数据备份及灾难恢复
查看>>
mysqldump数据库备份无法进行操作只能查询 --single-transaction
查看>>
mysqldump的一些用法
查看>>
mysqli
查看>>
MySQLIntegrityConstraintViolationException异常处理
查看>>
mysqlreport分析工具详解
查看>>
MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
查看>>