博客
关于我
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中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
查看>>
MYSQL中TINYINT的取值范围
查看>>
MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
查看>>
Mysql中varchar类型数字排序不对踩坑记录
查看>>
MySQL中一条SQL语句到底是如何执行的呢?
查看>>
MySQL中你必须知道的10件事,1.5万字!
查看>>
MySQL中使用IN()查询到底走不走索引?
查看>>
Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
查看>>
MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
查看>>
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>
Mysql中各类锁的机制图文详细解析(全)
查看>>
MySQL中地理位置数据扩展geometry的使用心得
查看>>
Mysql中存储引擎简介、修改、查询、选择
查看>>
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
查看>>
mysql中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>
MySql中怎样使用case-when实现判断查询结果返回
查看>>