SQL中的CASE WHEN用法(9)

来源:未知 责任编辑:责任编辑 发表时间:2014-02-02 17:50 点击:
username    action     
--------------------------------  
A                   CALL         
A                   SEARCH  
A                   SEARCH  
B                   CALL        
B                   SEARCH   
A                   SEARCH  
A                   VIDEO  
B                   SEARCH  
B                   VIDEO  
A                   CALL    
B                   VIDEO  
--------------------------------  
  
通过一条SQL语句得出下列统计数据:  
  
table2  
  
username   CALL_TIMES       SEARCH_TIMES      VIDEO_TIMES  
-------------------------------------------------------------------------------  
A                     2                        3                              1  
B                     1                        2                              2  
-------------------------------------------------------------------------------  
  
说明:  
  
table.action 中所有可能的值都已知的,只有 CALL , SEARCH ,VIDEO 和 table2 的字段一一对应  
  
  
MYSQL 语句:  
<BR>select   
<BR>      t.username,  
<BR>      max(CASE T.action WHEN 'CALL' THEN T.NN ELSE 0 end) as CALL_TIMES,  
<BR>      max(CASE T.action WHEN 'SEARCH' THEN T.NN ELSE 0 end) as SEARCH_TIMES,  
<BR>      max(CASE T.action WHEN 'VIDEO' THEN T.NN ELSE 0 end) as VIDEO_TIMES  
<BR>  
<BR>from   
<BR>  (select temp.username,temp.action,count(*) as NN   
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • sql常见面试题
  • SQL SERVER 2005性能之跟踪
  • SQL编程(一)
  • LINUX上RMAN自动备份脚本
  • sql server面试题
  • 如何将多个SQL查询统计结果一次显示出来
  • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
  • SQL小技巧系列 --- 行转列合并
  • sql server 列转行
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1