我的sql查询如下。
选择 if(name like 'ram%',if(place = 'Chennai','ramChennai','ramUnknown'),name) 作为名称,
count(*) 作为详细信息的 OwnerCount,其中 dept='CSE' 按名称分组
此查询正在拆分名称,但计数未正确进行。
它是按旧的 name
ram
和 raman
计数,而不是按 ramChennai
和 ramUnknown
计数
拆分列值后是否有更好的计数方法?
最佳答案
我不明白你的问题是什么。也许你应该为计算列设置一个别名OwnerName
与as name
,以免混淆mysql服务器的命名:
http://sqlfiddle.com/#!9/23c61/1
SELECT
IF(name LIKE 'ram%',IF(place = 'Chennai','ramChennai','ramUnknown'),name) as OwnerName,
COUNT(*) as OwnerCount
FROM detail
WHERE dept='CSE'
GROUP BY OwnerName
查询工作得很好
关于MySQL-在sql查询中用if语句分割值后如何对列数据使用count(*)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37615782/