我回答的一個問題上的SO用下面的查詢:是否可以在沒有子查詢的情況下分組兩次?
SELECT s.address
FROM shop s
JOIN visit v ON s.shopid = v.shopid
JOIN customer c ON v.customerid = c.customerid
WHERE c.cname = 'John'
GROUP BY
s.address
, c.customerid
HAVING COUNT(*) > 1
這工作得很好,但會返回重複的地址,如果有2個或更多的約翰對一個給定的商店誰符合查詢的條件,所以我修改我的答案:
SELECT DISTINCT a.address
FROM
(
SELECT s.address
FROM shop s
JOIN visit v ON s.shopid = v.shopid
JOIN customer c ON v.customerid = c.customerid
WHERE c.cname = 'John'
GROUP BY
s.address
, c.customerid
HAVING COUNT(*) > 1
) a
現在我的問題是:是否有可能實現評估聚集表達式時,首先進行分組,然後在一個單一的查詢,然後再選擇?
大概的使用可以首先從重複母雞放入加入表中的不同客戶。 – Avi 2013-05-06 14:01:41
該表中的客戶是不同的,當加入商店時發生重複,因爲許多約翰可以在單一商店購買。 – kyooryu 2013-05-06 14:07:34
如果你必須獨自承擔地址,然後放在餐桌店完全你可以嘗試(選擇不同customerid作爲customerid,從店鋪地址)s然後把必要的加入 – Avi 2013-05-06 14:12:03