복붙노트

[SQL] DISTINCT와 선택 COUNT (*) - SQL 서버 쿼리

SQL

DISTINCT와 선택 COUNT (*) - SQL 서버 쿼리

SQL Server 2005에서는 나는 테이블 cm_production을 나열하는 생산에 투입되어있어 모든 코드. 테이블은 다른 컬럼과 함께 ticket_number, program_type 및 program_name은 및 push_number 있습니다.

목표 : 프로그램 유형 및 푸시 번호로 모든 DISTINCT 프로그램 이름을 카운트

내가 지금까지 가지고하는 것입니다 :

DECLARE @push_number INT;
SET @push_number = [HERE_ADD_NUMBER];

SELECT DISTINCT COUNT(*) AS Count, program_type AS [Type] 
FROM cm_production 
WHERE push_number=@push_number 
GROUP BY program_type

이 날이 도중에 얻을 수 있지만, 모든 프로그램 이름,하지 (내가 그 쿼리 할 기대하지 않습니다) 별개의 사람을 세고. 난 그냥 그들을 선택하지 않고 단지 별개의 프로그램 이름을 계산하도록 지시하는 방법 주위에 내 머리를 정리 할 수없는 것 같아요. 또는 뭔가.

해결법

  1. ==============================

    1.

    SELECT COUNT(DISTINCT program_name) AS Count,
      program_type AS [Type] 
    FROM cm_production 
    WHERE push_number=@push_number 
    GROUP BY program_type
    

    DISTINCT COUNT (*)는 각각의 고유 한 카운트 행을 반환합니다. 당신이 원하는 것은 COUNT입니다 (DISTINCT <식>) : 그룹 및 반환에 각 행에 대한 식을 계산 고유 null이 아닌 값의 수.

  2. ==============================

    2.나는 각각의 고유 한 값의 발생 횟수를 얻을 필요가 있었다. 열은 지역 정보가 포함되어 있습니다. 내가 함께 결국 간단한 SQL 쿼리는 :

    나는 각각의 고유 한 값의 발생 횟수를 얻을 필요가 있었다. 열은 지역 정보가 포함되어 있습니다. 내가 함께 결국 간단한 SQL 쿼리는 :

    SELECT Region, count(*)
    FROM item
    WHERE Region is not null
    GROUP BY Region
    

    어느 날 말, 같은 목록을 제공합니다 :

    Region, count
    Denmark, 4
    Sweden, 1
    USA, 10
    
  3. ==============================

    3.당신은 별개의 열에 대한 파생 테이블을 만들고 그 테이블에서 카운트를 조회 할 수있다 :

    당신은 별개의 열에 대한 파생 테이블을 만들고 그 테이블에서 카운트를 조회 할 수있다 :

    SELECT COUNT(*) 
    FROM (SELECT DISTINCT column1,column2
          FROM  tablename  
          WHERE condition ) as dt
    

    여기서 DT 파생 테이블이다.

  4. ==============================

    4.

    SELECT COUNT(DISTINCT program_name) AS Count, program_type AS [Type] 
    FROM cm_production 
    WHERE push_number=@push_number 
    GROUP BY program_type
    
  5. ==============================

    5.이 시도:

    이 시도:

    SELECT
        COUNT(program_name) AS [Count],program_type AS [Type]
        FROM (SELECT DISTINCT program_name,program_type
                  FROM cm_production 
                  WHERE push_number=@push_number
             ) dt
        GROUP BY program_type
    
  6. ==============================

    6.이것은 당신이 주소 필드의 마지막에 저장 PIN 코드의 수를 얻으려면 좋은 예입니다

    이것은 당신이 주소 필드의 마지막에 저장 PIN 코드의 수를 얻으려면 좋은 예입니다

    SELECT DISTINCT
        RIGHT (address, 6),
        count(*) AS count
    FROM
        datafile
    WHERE
        address IS NOT NULL
    GROUP BY
        RIGHT (address, 6)
    
  7. ==============================

    7.

    select  count (distinct NumTar),'PROPIAS'
    from ATM_TRANe with (nolock)
    where Fecha>='2014-01-01'
      AND Fecha<='2015-05-31'and NetDestino=0
      and SystemCodResp=0
    group by NetDestino 
    union 
    select sum (contar),'FORANEAS'
    from  
    (
      select  count(distinct NumTar) as contar
      from ATM_TRANe with (nolock)
      where Fecha>='2014-01-01'
        AND Fecha<='2014-01-31'
        and NetDestino!=0
        and SystemCodResp=0
      group by NetDestino
    )dt
    
  8. from https://stackoverflow.com/questions/1521605/sql-server-query-selecting-count-with-distinct by cc-by-sa and MIT license