2011-04-20 59 views
2

我如何可以查詢交易的最大計數數的最大計數...... 我的代碼如下:SQL查詢 - 如何獲取列表

SELECT customer_id, COUNT(customer_id) 
FROM rental 
GROUP BY customer_id 
HAVING MAX(COUNT(customer_id)); //I need to get the MAXIMUM COUNT of the list 
+2

什麼數據庫您使用rsbarro的答案嗎? – 2011-04-20 03:46:37

+0

我想我們需要一些示例數據,如果沒有發佈的答案適合你。 – rsbarro 2011-04-20 03:52:26

回答

2

由於更多比一個客戶可以擁有相同數量的最大值喲ü應該做如下

SELECT customer_id, 
     COUNT(customer_id) AS customerrowcount 
FROM rental 
GROUP BY customer_id 
HAVING COUNT(customer_id) = (SELECT COUNT(customer_id) 
          FROM rental 
          GROUP BY customer_id 
          ORDER BY COUNT(customer_id) DESC 
          LIMIT 1) 

但是,如果你確定一個任意的客戶所選擇比你應該使用

+0

那麼我該如何解決讓客戶擁有相同MAXIMUM賬戶的問題 – newbie 2011-04-20 04:46:18

+1

您將得到兩位客戶。你需要從你的用戶那裏找到解決關係的人。 – 2011-04-20 04:52:16

+0

@ConradFrix這也可以通過不使用限制? – Achyut 2013-11-11 08:24:45

3

如果你正在尋找在customer_id與在rental表中的行數,你可以使用:

SELECT customer_id, COUNT(customer_id) as CustomerRowCount 
FROM rental 
GROUP BY customer_id 
ORDER BY COUNT(customer_id) DESC 
LIMIT 1 

上面的查詢將計算所有記錄每個CUSTOMER_ID,按降序排序,然後只選擇最上面一行。客戶的最大數量將出現在CustomerRowCount

編輯
康拉德提出瞭如此地步,兩個或兩個以上customer_id的可能有相同數量的記錄。如果業務需求是在這種情況下應該返回多個記錄,那麼他的查詢會給你你正在尋找的結果。如果只有一個記錄應該返回,那麼一個簡單而一致的打破關係的方法就是讓用戶使用最低的customer_id。要做到這一點,你可以改變的ORDER BY語句:

ORDER BY COUNT(customer_id) DESC, customer_id 
+0

我需要知道MAXimum COUNT – newbie 2011-04-20 03:44:30

+0

@newbie對不起,我不明白你在找什麼。如果有人還沒有弄明白,你可以用一些樣本數據更新你的問題嗎? – rsbarro 2011-04-20 03:47:07

+1

@newbie這兩個查詢都提供了最大數量。或者是特定客戶的最大計數。因此,按照降序排序,然後選擇第一排的原因。 – 2011-04-20 03:48:13

3

嘗試:

SELECT customer_id, MAX(COUNT(customer_id)) 
FROM rental 
GROUP BY customer_id; 

SELECT top 1 customer_id, COUNT(customer_id) 
FROM rental 
GROUP BY customer_id 
ORDER BY COUNT(customer_id) DESC 
+0

MAX(COUNT(customer_id))不起作用 – newbie 2011-04-20 03:50:06

+1

我想你錯過了第二個查詢的ORDER BY上的DESC。 =] – rsbarro 2011-04-20 05:03:47

+0

@rsbarro - 感謝您指出。立場糾正。 – Kangkan 2011-04-20 06:04:26

2

查詢爲MySQL

SELECT 
    * 
FROM (SELECT 
     customer_id, 
     COUNT(customer_id) AS CountOfCustomer 
     FROM rental 
     GROUP BY customer_id) q1 
ORDER BY CountOfCustomer DESC 
LIMIT 1 
+0

我正在使用MYSQL – newbie 2011-04-20 03:49:41