我正在尝试使用不同的 where like 子句对同一列进行多次计数。
我已经为每个 like 子句找出了基本查询,但我需要将它们组合起来以产生一个结果。
select system_user, COUNT(details) from asset_log where details like 'Viewed';
select system_user, COUNT(details) from asset_log where details like 'Viewed Web%';
select system_user, COUNT(details) from asset_log where details like 'ThumbView';
select system_user, COUNT(details) from asset_log where details like 'Exported%';
我确定这是可能的,我只是不知道该怎么做。任何帮助将不胜感激。
提前致谢
更新:
这对我有用
select distinct system_user,
SUM(CASE WHEN details ='viewed' then 1 Else 0 end) AS viewed_count,
SUM(CASE WHEN details Like 'Viewed Web%' then 1 Else 0 end) AS Web_count,
SUM(CASE WHEN details = 'ThumbView' then 1 Else 0 end) AS ThumbView_count,
SUM(CASE WHEN details Like 'Exported%' then 1 Else 0 end) AS Exported_count
from asset_log GROUP BY system_user;
谢谢!
最佳答案
您可以使用 SUM/Case 来“旋转”计数
select system_user,
SUM(CASE WHEN details ='viewed' then 1 Else 0 end) viewed_count
SUM(CASE WHEN details Like 'Viewed Web%' then 1 Else 0 end) Viewed Web_count
SUM(CASE WHEN details = 'ThumbView' then 1 Else 0 end) ThumbView_count
SUM(CASE WHEN details Like 'Exported%' then 1 Else 0 end) Exported_count
from asset_log
where
details = 'viewed' or
details like 'Viewed Web%' or
details = 'ThumbView' or
details like 'Exported%'
group by
system_user
注意:如果没有通配符,我不会费心使用“喜欢”
关于mysql - 同一列上的多个计数与 Where like - MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8931528/