[英]Count and Distinct SQL query
我有一個Books表,其中包含以下列:
Book_Id User_Id
001 1
002 2
001 1
004 2
005 3
006 3
007 2
008 2
009 1
地點 :
Book_Id - 用戶閱讀的書籍的標識符; User_Id - 讀者/用戶的標識符。
我們假設User1讀了三次書,但其中有兩本是相同的,所以用戶1讀了2本不同的書(001和009)。 用戶2閱讀4本不同的書籍,而用戶3閱讀2本不同的書籍。 總體而言,有2個用戶閱讀2本不同的書籍,1個用戶閱讀4本不同的書籍。 預期產量如下:
Distinct_Books_Count --- User_Count
2 2
4 1
我嘗試了以下方法:
SELECT COUNT(DISTINCT Book_Id),COUNT(User_Id)FROM Books GROUP BY User_Id
但我收到下表:
Distinct_Books_Count User_Count
2 3
4 4
2 2
那么任何替代解決方案或變化?
我稱之為“直方圖直方圖”查詢。 您可以使用兩個group by
來執行此操作:
SELECT num_books, COUNT(*)
FROM (SELECT b.User_Id, COUNT(DISTINCT Book_Id) as num_books
FROM Books b
GROUP BY User_Id
) b
GROUP BY num_books
ORDER BY num_books;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.