SELECT
. के तहत दस्तावेज़ के रूप में सिंटैक्स:
दूसरे शब्दों में, इसे बाद . लागू किया जाता है ग्रुपिंग ऑपरेशन किया गया है (WHERE
. के विपरीत) , जो पहले . किया जाता है कोई समूह संचालन)। देखें WHERE vs HAVING
।
इसलिए, आपकी वर्तमान क्वेरी पहले निम्न से परिणाम सेट बनाती है:
SELECT COUNT(domain) AS `sum domains`, file
FROM `table`
GROUP BY Number
इसे sqlfiddle पर देखें :
| SUM DOMAINS | FILE | --------------------------- | 2 | aaa.com_1 | | 2 | bbb.com_1 | | 1 | eee.com_1 |
जैसा कि आप देख सकते हैं, file
. के लिए चयनित मान कॉलम प्रत्येक समूह के मानों में से एक है—जैसा कि MySQL के अंतर्गत प्रलेखित है। GROUP BY
. के एक्सटेंशन
:
तब आपकी वर्तमान क्वेरी आपके HAVING
. के अनुसार इन परिणामों को फ़िल्टर करने के लिए आगे बढ़ती है खंड:
HAVING COUNT(Number) > 1 AND file LIKE '%\_1'
file
. के मानों के साथ ऊपर चयनित, हर एक समूह दूसरे मानदंड पर मेल खाता है; और पहले दो समूह पहली कसौटी पर मेल खाते हैं। इसलिए पूरी क्वेरी
के नतीजे हैं:
| SUM DOMAINS | FILE | --------------------------- | 2 | aaa.com_1 | | 2 | bbb.com_1 |
SELECT Number, COUNT(*) AS `sum domains`
FROM `table`
WHERE file LIKE '%\_1'
GROUP BY Number
HAVING `sum domains` > 1
इसे sqlfiddle पर देखें :
| NUMBER | SUM DOMAINS | ------------------------ | 222 | 2 |