SQL Group By

3 sql group-by

如果我有一组记录

name    amount    Code
Dave    2         1234
Dave    3         1234
Daves   4         1234
Run Code Online (Sandbox Code Playgroud)

我希望这个基于Code&Name进行分组,但是最后一行在名称中有一个拼写错误,所以这不会分组.

将这些分组的最佳方式是:

Dave/Daves 9 1234

Chr*_*ris 6

作为一般规则,如果数据错误,您应该修复数据.

但是,如果您想要执行报告,您可以提出另一个分组标准,例如LEFT(Name,4)将对名称的前4个字符执行分组.

您可能还想将CASE语句视为一种方法(CASE WHEN name ='Daves'THEN'Dave'ELSE name),但我真的不喜欢这种方法,特别是如果你建议将其用于其他任何方面,那么一次性报告.


Qua*_*noi 5

如果这是一种解决方法,请尝试

SELECT cname, SUM(amount)
FROM (
  SELECT CASE WHEN NAME = 'Daves' THEN 'Dave' ELSE name END AS cname, amount
  FROM mytable
)
GROUP BY cname
Run Code Online (Sandbox Code Playgroud)

这 if course 只会处理这个确切的情况。