博客
关于我
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、Redis高频面试题汇总
查看>>
MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
查看>>
mysql一个字段为空时使用另一个字段排序
查看>>
MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
查看>>
MYSQL一直显示正在启动
查看>>
MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
查看>>
MySQL万字总结!超详细!
查看>>
Mysql下载以及安装(新手入门,超详细)
查看>>
MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
查看>>
MySQL不同字符集及排序规则详解:业务场景下的最佳选
查看>>
Mysql不同官方版本对比
查看>>
MySQL与Informix数据库中的同义表创建:深入解析与比较
查看>>
mysql与mem_细说 MySQL 之 MEM_ROOT
查看>>
MySQL与Oracle的数据迁移注意事项,另附转换工具链接
查看>>
mysql丢失更新问题
查看>>
MySQL两千万数据优化&迁移
查看>>
MySql中 delimiter 详解
查看>>
MYSQL中 find_in_set() 函数用法详解
查看>>
MySQL中auto_increment有什么作用?(IT枫斗者)
查看>>
MySQL中B+Tree索引原理
查看>>