zoukankan      html  css  js  c++  java
  • 一道sql练习题

    表内容:
    2005-05-09 胜
    2005-05-09 胜
    2005-05-09 负
    2005-05-09 负
    2005-05-10 胜
    2005-05-10 负
    2005-05-10 负

    如果要生成下列结果, 该如何写sql语句?

                胜 负
    2005-05-09 2 2
    2005-05-10 1 2


     1 
     2 DROP TABLE #Temp
     3 
     4 CREATE TABLE #Temp
     5 (
     6   Date VARCHAR(36),
     7   State CHAR(10)
     8 )
     9 
    10 INSERT INTO #Temp VALUES ('2005-05-09','')
    11 insert into #Temp values('2005-05-09','')
    12 insert into #Temp values('2005-05-09','')
    13 insert into #Temp values('2005-05-09','')
    14 insert into #Temp values('2005-05-10','')
    15 insert into #Temp values('2005-05-10','')
    16 insert into #Temp values('2005-05-10','')
    17 
    18 
    19 
    20 select * from #Temp
    21 
    22 /* 第一种方法 */
    23 SELECT Date,SUM(CASE State WHEN '' THEN 1 ELSE 0 END ) AS '',
    24 SUM(CASE State WHEN '' THEN 1 ELSE 0 END ) AS ''
    25 FROM #Temp
    26 GROUP BY Date
    27 
    28 
    29 /* 第二种方法 */
    30 SELECT A.Date,A.胜,B.负 FROM 
    31 (SELECT Date, ''=COUNT(*FROM #Temp WHERE State='' GROUP BY Date) A INNER JOIN 
    32 (SELECT Date, ''=COUNT(*FROM #Temp WHERE State='' GROUP BY Date) B ON A.Date=B.Date
    33 ------------------------------------------------------------------------------------------
    34 
    35 

  • 相关阅读:
    图匹配板子
    线性基
    Berlekamp-Massey algorithm
    组合/概率/形式幂级数/多项式/集合幂级数的题
    费用流 Dijkstra 原始对偶方法(primal-dual method)
    UVA-12304
    二项式系数
    卡特兰数
    多项式模板
    工具
  • 原文地址:https://www.cnblogs.com/tzy080112/p/1446949.html
Copyright © 2011-2022 走看看