【问题标题】:How to use multiple count and group by condition in single SQL query如何在单个 SQL 查询中使用多个计数和按条件分组
【发布时间】:2015-04-10 04:56:29
【问题描述】:

下面是我的 SQL 表。

    Id   FileName       Code1    Code2
    1   002-03_001.tif  Y179     Y179
    2   002-03_002.tif  Y178     Y178
    3   002-03_003.tif  Y177     Y177
    4   002-03_004.tif  Y178     Y179
    5   002-03_005.tif  Y177     Y179
    6   002-03_006.tif  Y179     Y178
    7   002-03_007.tif  Y178     Y178
    8   002-03_008.tif  Y178     Y177
    9   002-03_009.tif  Y177     Y179
    10  002-03_010.tif  Y178     Y177

从上表中我想计算 Code1 和 code2 之类的,

  Code1 Count1 Code2 Count2
  Y177   3      Y177    3
  Y178   2      Y178    3
  Y179   5      Y179    4

【问题讨论】:

    标签: sql count group-by union-all


    【解决方案1】:

    你想做这样的事情 SQL Fiddle

    样本数据

    create table table1
    (
    Id int,FileName VARCHAR(100),Code1 VARCHAR(10),Code2 VARCHAR(10)
    )
    
    insert into table1 values(    1,   '002-03_001.tif',  'Y179',     'Y179'),
        (2   ,'002-03_002.tif',  'Y178',     'Y178')
        ,(3   ,'002-03_003.tif',  'Y177',     'Y177')
        ,(4   ,'002-03_004.tif',  'Y178',     'Y179')
        ,(5   ,'002-03_005.tif',  'Y177',     'Y179')
        ,(6   ,'002-03_006.tif',  'Y179',     'Y178')
        ,(7   ,'002-03_007.tif',  'Y178',     'Y178')
        ,(8   ,'002-03_008.tif',  'Y178',     'Y177')
        ,(9   ,'002-03_009.tif',  'Y177',     'Y179')
        ,(10  ,'002-03_010.tif',  'Y178',     'Y177')
    

    查询

    SELECT * FROM
    (
        SELECT Code1,COUNT(*) Count1
        FROM table1
        GROUP BY Code1
    )   Code1
    INNER JOIN 
    (
        SELECT Code2,COUNT(*) Count2
        FROM table1
        GROUP BY Code2
    ) Code2
    ON Code1.Code1 = Code2.Code2
    

    【讨论】:

      猜你喜欢
      • 2010-11-19
      • 2019-08-10
      • 2019-06-11
      • 1970-01-01
      • 2021-07-21
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      相关资源
      最近更新 更多