我使用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