跳到主要内容
版本:2.5

any_value

功能

在包含 GROUP BY 的聚合查询中,该函数用于从每个聚合分组中随机选择一行返回。

语法

ANY_VALUE(expr)

参数说明

expr: 被选取的表达式.

返回值说明

在每个聚合后的分组中随机选择某行的结果返回,结果是不确定的。

示例

假设表中有如下数据。

mysql> select * from any_value_test;
+------+------+------+
| a | b | c |
+------+------+------+
| 1 | 1 | 1 |
| 1 | 2 | 1 |
| 2 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 1 | 1 |
+------+------+------+
5 rows in set (0.01 sec)

使用 ANY_VALUE 后的结果。

```plain text
mysql> select a,any_value(b),sum(c) from any_value_test group by a;
+------+----------------+----------+
| a | any_value(`b`) | sum(`c`) |
+------+----------------+----------+
| 1 | 1 | 2 |
| 2 | 1 | 3 |
| 3 | 1 | 1 |
+------+----------------+----------+
3 rows in set (0.01 sec)

mysql> select c,any_value(a),sum(b) from any_value_test group by c;
+------+----------------+----------+
| c | any_value(`a`) | sum(`b`) |
+------+----------------+----------+
| 1 | 1 | 5 |
| 2 | 2 | 2 |
+------+----------------+----------+
2 rows in set (0.01 sec)