Mysql
限制組的不同計數
為簡單起見,假設我有一個
t
包含列id
和value
. 我可以使用查詢找到具有多個不同值的 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) ;