MySQL-在sql查询中用if语句分割值后如何对列数据使用count(*)?

标签 mysql

我的sql查询如下。

选择 if(name like 'ram%',if(place = 'Chennai','ramChennai','ramUnknown'),name) 作为名称, count(*) 作为详细信息的 OwnerCount,其中 dept='CSE' 按名称分组

此查询正在拆分名称,但计数未正确进行。 它是按旧的 name ramraman 计数,而不是按 ramChennairamUnknown 计数

拆分列值后是否有更好的计数方法?

最佳答案

我不明白你的问题是什么。也许你应该为计算列设置一个别名OwnerNameas 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/

相关文章:

mysql - laravel 的性能差异只是 get 与 select 并 get

python - 安装Mysql时启动DJango服务器出错

PHP fork 处理MySQL数据库无冲突

python - 我可以用少于 2 个查询和 1 个循环得到 "number of users who have created their first object since -date-"吗?

mysql - oracle查询从表中获取最后4条记录

mysql 客户端的 MySQL 连接池

php - codeigniter nodejs 和 nowjs 集成

php - 允许 php 软件在不超过 3 个计算中运行

php - 如何显示浏览量最多的前10名?

php - 使用php向mysql插入数据失败