2017-05-11 98 views
0

我有兩個表格是請求和其他狀態,請求表存儲所有傳入請求,傳入請求的狀態從請求表映射到狀態表。每個請求都有客戶端用於標識誰創建該票證的ID。Sql一對多連接數

我怎樣才能得到每個客戶在每個州的請求數。

我怎樣才能得到每個用戶有多少國家都是零計數

select count(1),state,c.client_id 
from Client c join Request r on r.client_id = c.client_id 
group by r.state,c.client_id order by c.client_id desc 

不具有零計數低於

表結構給出狀態此查詢。

客戶

  1. CLIENT_ID
  2. CLIENT_NAME
  3. 位置
  4. EMAIL_ID
  5. 地址

請求

  1. REQUEST_ID
  2. CLIENT_ID
  3. 受試者
  4. 描述
  5. STATE_ID
  6. CREATED_TIME

Request_state

  1. STATE_ID
  2. STATE_NAME
+0

@TimBiegeleisen postgress –

+0

即使您還沒有嘗試過某些東西,您至少應該編輯您的問題並顯示您希望預期輸出結果的表格。我甚至不認爲這是現在可以回答的問題。 –

+0

先生,我堅持這個問題,我想要的是報告了所有客戶端有多少請求在每個國家,我的問題是狀態表有很多行..希望找到該類型請求的計數 –

回答

0

這應該做的伎倆:

select count(1),state_id, client_id 
from Client c 
join Request r on r.client_id = c.client_id 
group by 
state_id, client_id 

更新: 歐普期待一排數= 0,它可以達到:

with c as (
    select count(1),state_id, client_id 
    from Client c 
    join Request r on r.client_id = c.client_id 
    group by 
    state_id, client_id 
) 
select * 
from c 
union all 
select 0,null,null 
; 
+0

- FO你期待什麼的話.. –

+0

如果計數爲零,這意味着沒有這樣的行狀態計數0是不是有 –

+0

預期的結果是應該有AA具有行數0 –