我很困惑如何计算相同但格式不同的项目。例如,我们想知道人们有多少种不同的水果,并具有以下数据:

Mary|Apple|
Mary|apple|
Mary|Apple |
Mary|Orange|
Liu|Grape|
Liu|Apple|


我期望输出

Mary|2
Liu|2


但是如果我做count(distinct fruits)然后我得到

Mary|4
Liu|2


在这种情况下是否有任何处理格式的方法?

最佳答案

您可以数一下:


删除开头和结尾的空格-使用TRIM()
卸下字母大写字母-使用LOWER()


如:

select
    name,
    count(distinct lower(trim(fruits)))
  from my_table
  group by name


如果碰巧有相似的不规则之处,可以对name列使用相同的策略。

关于sql - 使用SQL计算具有不同格式的项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52350355/

10-11 14:23