博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在GROUP BY中"做文章"(五种中简答方法!)
阅读量:4592 次
发布时间:2019-06-09

本文共 1509 字,大约阅读时间需要 5 分钟。

被废话,直接上代码

测试代码,数据如下:

CREATE TABLE #T( TIMES VARCHAR(15), RESULT NVARCHAR(20) )INSERT  INTO #T SELECT  '2005-05-09','胜'UNION ALLSELECT '2005-05-09', '胜'UNION ALLSELECT '2005-05-09', '负'UNION ALLSELECT '2005-05-09', '负'UNION ALLSELECT '2005-05-10', '胜'UNION ALLSELECT '2005-05-10', '负'UNION ALLSELECT '2005-05-10', '负'

 

要求结果:

       时间          胜  负

2005-05-09      2  2
2005-05-10      1  2

 方法一:CASE 的妙用

--结果--CASE 里面做文章滴呀;--我艹尼玛;--CASE 用户group by 之后的逻辑判断滴呀;--好逻辑,尼玛case的妙用滴呀;SELECT TIMES, SUM(CASE WHEN RESULT='胜' THEN 1 ELSE 0 END) AS 胜, SUM(CASE WHEN RESULT='负' THEN 1 ELSE 0 END) AS 负FROM #TGROUP BY TIMES

 方法二:共用表达式+COUNT()

GOWITH A AS(SELECT TIMES,COUNT(*) AS WIN FROM #TWHERE RESULT='胜'GROUP BY TIMES), B AS(SELECT TIMES,COUNT(*) AS LOSE FROM #TWHERE RESULT='负'GROUP BY TIMES)SELECT AA.TIMES,AA.WIN,BB.LOSE FROM A AA INNER JOIN B BBON AA.TIMES=BB.TIMES

 方法三:既然能够使用我们的共用表达式,那么自然能使用我们的临时表滴啦

 

 方法四:

  

SELECT A.TIMES,A.WIN,B.LOSE FROM   (   SELECT TIMES,COUNT(*) WIN FROM #T   WHERE RESULT='胜'   GROUP BY TIMES  ) AS A,    (   SELECT TIMES,COUNT(*) LOSE FROM #T   WHERE RESULT='负'   GROUP BY TIMES    ) AS B    WHERE A.TIMES=B.TIMES

 方法五:

   

SELECT N.TIMES,N.WIN,M.LOSE FROM (  (    SELECT TIMES,COUNT(*) AS WIN FROM #T    WHERE RESULT='胜'    GROUP BY TIMES)N     INNER JOIN     (SELECT TIMES ,COUNT(*) AS LOSE FROM #T    WHERE RESULT='负'    GROUP BY TIMES    )M ON N.TIMES=M.TIMES    )    --中间的赛选条件也可以这样写滴呀  --我艹尼玛  SELECT TIMES,COUNT(*) as win  FROM #T  GROUP BY TIMES,RESULT  HAVING RESULT='胜'

 

  帅~

转载于:https://www.cnblogs.com/mc67/p/5052448.html

你可能感兴趣的文章
[洛谷P3931]SAC E#1 - 一道难题 Tree
查看>>
设计模式学习总结:(5)装饰模式
查看>>
sql JOIN语句应注意on与where的区别
查看>>
[转载]python 详解re模块
查看>>
HDU - 4686 函数积的前缀和
查看>>
k8s系列---EFK日志系统
查看>>
Python list、tuple、dict区别
查看>>
20190127-将一个文件拆分为多个新文件
查看>>
在DevExpress程序中使用GridView直接录入数据的时候,增加列表选择的功能
查看>>
【经验】在CSS中定义a:link、a:visited、a:hover、a:active顺序
查看>>
异常处理
查看>>
Div+Css网页布局
查看>>
linux基本命令
查看>>
Practical Java笔记二:不要使用缺省的equal方法
查看>>
主键和唯一索引的区别(转)
查看>>
2013551814第六次作业
查看>>
Linux搭建maven私服
查看>>
中兴机试
查看>>
Node.js的颠覆者:PHP的Swoole扩展
查看>>
Binary Tree的3种非Recursive遍历
查看>>