簡體   English   中英

如何查找每個問題的訂閱者數量?

[英]How to find number of subscribers per question?

我正在嘗試查找每個問題的訂閱者數量。 這里的挑戰是用戶訂閱不止一次,但我只需要計算該用戶第一次訂閱的時間。 如果有人可以指導我,我還在學習。 我附上了我使用的表格和代碼的鏈接

查詢結果

select * , COUNT(GroupQuestionSubscriberId) NumberOfSubscriber
from [dbo].[ADF_GroupQuestionSubscribers]
where GroupQuestionId = 4654
GROUP BY [GroupQuestionSubscriberId], [GroupQuestionId], [UserID], [Status], [CreatedDt]

CreatedDt列很可能包含每行數據的唯一值。 在您的group by子句中包含該列將產生許多等於1的計數。 為了使當前查詢產生2個計數,您需要兩行具有完全相同的GroupQuestionSubscriberIdGroupQuestionIdUserIDStatusCreatedDt 如果這一切都不是很有意義,那么我建議您通過閱讀文檔group by

如果打算在可用數據旁邊顯示該計數,則使用cross apply是一種可能的解決方案。

樣本數據

create table ADF_GroupQuestionSubscribers
(
  GroupQuestionSubscriberId int,
  GroupQuestionId int,
  UserId int,
  Status nvarchar(10),
  CreatedDt datetime
);

insert into ADF_GroupQuestionSubscribers (GroupQuestionSubscriberId, GroupQuestionId, UserId, Status, CreatedDt) values
(8031, 4654, 32338, 'Subscribed', '2021-01-19 15:41:25.970'),
(8035, 4654, 32299, 'Subscribed', '2021-01-19 15:55:14.123'),
(8038, 4654, 32338, 'Subscribed', '2021-01-19 16:00:27.343'),
(8094, 4654, 32466, 'Subscribed', '2021-01-20 06:42:50.323');

解決方案

select gqs.*,
       c.NumberOfSubscribers
from ADF_GroupQuestionSubscribers gqs
cross apply ( select count(distinct gqsc.UserId) as NumberOfSubscribers
              from ADF_GroupQuestionSubscribers gqsc
              where gqsc.GroupQuestionId = gqs.GroupQuestionId ) c
where gqs.GroupQuestionId = 4654;

結果

GroupQuestionSubscriberId  GroupQuestionId  UserId  Status      CreatedDt                NumberOfSubscribers
-------------------------  ---------------  ------  ----------  -----------------------  -------------------
8031                       4654             32338   Subscribed  2021-01-19 15:41:25.970  3
8035                       4654             32299   Subscribed  2021-01-19 15:55:14.123  3
8038                       4654             32338   Subscribed  2021-01-19 16:00:27.343  3
8094                       4654             32466   Subscribed  2021-01-20 06:42:50.323  3

小提琴以查看實際情況。

編輯:使用新的預期結果信息更新解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM