Mysql

限制組的不同計數

  • December 4, 2014

為簡單起見,假設我有一個t包含列idvalue. 我可以使用查詢找到具有多個不同值的 id,例如

SELECT id, COUNT(DISTINCT(value)) AS count
FROM t
GROUP BY id
HAVING count > 1

有沒有更有效的方法來做到這一點?是否可以對其進行更改,以便在找到多個不同值後立即停止每個 id 的計數?

您可以測試這種變化。理論上,它會使用(id, value)索引來找到最小值和最大值,並且根本不需要計算不同的值:

SELECT id
FROM t
GROUP BY id
HAVING MIN(value) < MAX(value) ;

引用自:https://dba.stackexchange.com/questions/84253