我使用SQL Server和我有表:SQL從特定用戶的查詢更改爲所有用戶
tbl_Message:
id, user_id, group_id
這是一個包含所有的消息是誰寫的消息的詳細信息表(USER_ID)且其中組被髮送(GROUP_ID)
tbl_GroupUser:
user_id, group_id
其是包含用戶和他們在(每個組具有一個以上的USER_ID和每個用戶具有一個以上的基團)基團的表。
我創建了一個查詢,返回用戶發送的消息與他收到的消息之間的比率。我做了一個適用於特定用戶的查詢,並且我想要一個顯示所有用戶結果的查詢。這是我提出的查詢:
SELECT CAST((SELECT COUNT(*) FROM tbl_Message WHERE user_id = ‘user’)
as decimal)/
(SELECT COUNT(*) FROM tbl_Message WHERE group_id in
(SELECT group_id FROM tbl_GroupUser WHERE user_id = ‘user’) and user_id != ‘user’)
例子:
tbl_GroupUser
user_id | group_id
-------------------
1 | 1
2 | 1
tbl_Message
id | user_id | group_id
-----------------------
1 | 1 | 1
2 | 2 | 1
3 | 2 | 1
返回結果:
user_id | ratio
---------------
1 | 1/2
2 | 2/1
你會顯示一些樣本數據,並從中得出什麼結果? –
我現在增加了一個例子。 –
結果不會是1/3和2/3嗎?或者你只是在尋找計數與所有不是該用戶的計數? – ZLK