我有兩個表。一個與客戶,其他與客戶購買的產品。 當我想要得到的所有的產品和客戶的名單,我做的:COUNT和DISTINCT無組通過
SELECT client_name, prod_id FROM TAB_CLIENT
INNER JOIN TAB_PROD ON prod_client = client_name
所以我得到(例如)
- 亨利 - 土豆
- 亨利 - 巧克力
- 湯姆 - 啤酒
不錯。現在我想知道我有多少個不同的客戶。 所以我試着用COUNT和DISTINCT。就像這樣:
SELECT COUNT(DISTINCT client_name) AS num_client, client_name, prod_id
FROM TAB_CLIENT
INNER JOIN TAB_PROD ON prod_client = client_name
我想:
- 2 - 亨利 - 土豆
- 2 - 亨利 - 巧克力
- 2 - 湯姆 - 啤酒
所以第一列的「2」作爲不同客戶的總數是2(亨利和湯姆),客戶的姓名是第二柱和作爲第三柱的產品名稱。 但事實上,如果我添加計數(不同),我只能得到一個結果(看起來好像在num_client上有一個「group by」)。而且我不想在client_name上使用GROUP BY,因爲在這種情況下,我會放棄該產品。
是否有可能在一個查詢中執行該操作,或者是否必須執行一次select以進行計數,另一次才能得到結果?
我注意到Stack中給出的所有例子都是關於Count/Distinct只返回數字而不是數字和結果。
謝謝
PS:我正在運行MariaDB。
爲什麼在詢問「有多少客戶」時包含TAB_PROD? –
因爲我想要結果中的產品和客戶:Henri是客戶,Potatoe是Henri購買的產品。問題來自於當你添加計數(明顯)時你放棄了結果。 – Peter
您的要求「現在我想知道我有多少個不同的客戶」,沒有提到產品。請重新說明。 –