상태 및 ID를 기반으로 SQL Server 데이터베이스에서 행을 그룹화하고 개수를 표시해야하는 시나리오가 있습니다. 나는려고하지만 결과는SQL Server : 단일 행에 여러 행 값
bid status accept rejected noResp
--------------------------------------
1 1 1 1 0
2 1 1 1 0
3 1 1 1 0
2 2 0 2 0
3 2 0 1 0
입니다
select
req_id as bid, status,
(case when status = 1 then 1 else 0 end) as accept,
count(case when status = 2 then 1 else 0 end) as rejected,
(case when status = 3 then 1 else 0 end) as noResp
from
temp_allo
group by
req_id, status
아래처럼 별도의 분리 된 행의 값을 얻고있다
(상태는 참조 용으로 만 것입니다)하지만이 같은 결과가 필요합니다
bid accept rejected noResp
-----------------------------------
1 1 0 0
2 1 2 0
3 1 1 0
나는 많은 시도를 stackoverflow에서 시도했다. MAX()
, SUM()
, CASE
하지만 제대로 작동하지 못했습니다.
제안하십시오
..
어떻게 입찰가 = 1에 대해 거부 = 0, 논리에 문제가 있습니까? – igr
이것은 얼마나 많은 사람들이 데이터베이스 항목에서 추출한 것을 거부했는지에 따라 계산됩니다. – Malar