0

使用 GROUP BY 时,哪些聚合函数适用于字符串?

我通常会 GROUP BY user_id,但我不确定什么聚合函数可以在字符串上工作。

目标是将每个 user_id 的货币作为一行:

user_id   currency

12341235  "USD"
12341235  "USD"
12341235  "USD"
12341235  "USD"
05945949  "EURO"
05945949  "EURO"
05945949  "EURO"
99910277  "USD"
99910277  "USD"
99910277  "USD"

完成数据:

user_id   currency

12341235  "USD"
05945949  "EURO"
99910277  "USD"
4

4 回答 4

2

演示 http://sqlfiddle.com/#!3/60ea7/5

DISTINCT 和 GROUP BY 通常生成相同的查询计划,因此两种查询构造的性能应该相同。应该使用 GROUP BY 将聚合运算符应用于每个组。如果您只需要删除重复项,请使用 DISTINCT。如果您使用子查询,则该查询的执行计划会有所不同,因此在这种情况下,您需要在决定哪个更快之前检查执行计划。

于 2012-07-20T06:58:56.263 回答
2

实际上,您不需要group by它可以通过distinct.

select distinct user_id,currency from your_table;

由于每行都有currency一个user,所以这里不需要任何aggregate function.

于 2012-07-20T06:49:52.827 回答
1

将所有列分组使其与众不同

select user_id,currency from your_table
Group by user_id,currency 
于 2012-07-20T06:53:31.327 回答
1

您想使用分组依据有什么特殊原因吗?

要获得相同的结果,您应该能够使用 DISTINCT,例如

选择不同的user_id,货币

于 2012-07-20T06:48:02.500 回答