簡體   English   中英

Count和Distinct SQL查詢

[英]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.

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