我如何可以查詢交易的最大計數數的最大計數...... 我的代碼如下: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
我如何可以查詢交易的最大計數數的最大計數...... 我的代碼如下: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
由於更多比一個客戶可以擁有相同數量的最大值喲ü應該做如下
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)
但是,如果你確定一個任意的客戶所選擇比你應該使用
如果你正在尋找在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
嘗試:
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
查詢爲MySQL
SELECT
*
FROM (SELECT
customer_id,
COUNT(customer_id) AS CountOfCustomer
FROM rental
GROUP BY customer_id) q1
ORDER BY CountOfCustomer DESC
LIMIT 1
我正在使用MYSQL – newbie 2011-04-20 03:49:41
什麼數據庫您使用rsbarro的答案嗎? – 2011-04-20 03:46:37
我想我們需要一些示例數據,如果沒有發佈的答案適合你。 – rsbarro 2011-04-20 03:52:26