GROUP_ID
唯一标识返回重复分组集的重复 GROUP BY 查询集。此函数返回一个或多个以零 (0) 开头的整数作为标识符。
对于特定分组的重复数量 n,GROUP_ID 返回一组连续的数字 0 到 n–1。对于它遇到的每个第一个唯一组,GROUP_ID 返回值 0。如果 GROUP_ID 再次发现了相同的分组,函数会返回 1,然后对下一个发现的分组返回 2,以此类推。
行为类型
不可变语法
GROUP_ID ()
示例
此示例显示了 GROUP_ID 如何在查询产生重复分组时创建唯一标识符。对于费用表,以下查询按照费用类别和年份对结果进行分组,并 为这两个列计算汇总值。这些结果在类别和 NULL 方面具有重复分组。第一个分组的 GROUP_ID 为 0,第二个分组的 GROUP_ID 为 1。
=> SELECT Category, Year, SUM(Amount), GROUPING_ID(Category, Year),
GROUP_ID() FROM expenses GROUP BY Category, ROLLUP(Category,Year)
ORDER BY Category, Year, GROUPING_ID();
Category | Year | SUM | GROUPING_ID | GROUP_ID
-------------+------+--------+-------------+----------
Books | 2005 | 39.98 | 0 | 0
Books | 2007 | 29.99 | 0 | 0
Books | 2008 | 29.99 | 0 | 0
Books | | 99.96 | 1 | 0
Books | | 99.96 | 1 | 1
Electricity | 2005 | 109.99 | 0 | 0
Electricity | 2006 | 109.99 | 0 | 0
Electricity | 2007 | 229.98 | 0 | 0
Electricity | | 449.96 | 1 | 1
Electricity | | 449.96 | 1 | 0