SQL GROUP BY ਬਿਆਨ
- ਪਿੰਨਾ ਪੰਨਾ SQL sum()
- ਅਗਲਾ ਪੰਨਾ SQL Having
ਹੈਜ਼ੋਰ ਗਿਆਨ ਫੰਕਸ਼ਨ (ਉਦਾਹਰਣ SUM) ਸਾਧਾਰਨ ਤੌਰ 'ਤੇ GROUP BY ਵਾਕਯ ਨੂੰ ਜੋੜਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ。
GROUP BY ਵਾਕਯ
GROUP BY ਵਾਕਯ ਹੈਜ਼ੋਰ ਗਿਆਨ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਜੋੜਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਜਿਸ ਨੂੰ ਇੱਕ ਜਾਂ ਵੱਧ ਸਤੰਭਾਂ ਦੇ ਅਧਾਰ 'ਤੇ ਰੈਸਲਟ ਸੈਟ ਵਿੱਚ ਸਮੂਹਬੱਧ ਕੀਤਾ ਜਾਂਦਾ ਹੈ。
SQL GROUP BY ਗਰੰਥ
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name
SQL GROUP BY ਉਦਾਹਰਣ
ਅਸੀਂ ਹੇਠ ਲਿਖੇ 'Orders' ਟੇਬਲ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹਾਂ:
O_Id | OrderDate | OrderPrice | Customer |
---|---|---|---|
1 | 2008/12/29 | 1000 | Bush |
2 | 2008/11/23 | 1600 | Carter |
3 | 2008/10/05 | 700 | Bush |
4 | 2008/09/28 | 300 | Bush |
5 | 2008/08/06 | 2000 | Adams |
6 | 2008/07/21 | 100 | Carter |
ਹੁਣ, ਅਸੀਂ ਹਰੇਕ ਮੈਂਬਰ ਦੇ ਕੁੱਲ ਰਕਮ (ਕੁੱਲ ਆਰਡਰ) ਲੱਭਣਾ ਚਾਹੁੰਦੇ ਹਾਂ。
ਅਸੀਂ ਮੈਂਬਰ ਨੂੰ ਗਰੁੱਪ ਕਰਨ ਲਈ ਮੈਂਬਰ ਗਰੁੱਪ ਸਟੇਟਮੈਂਟ ਵਰਤਣਾ ਚਾਹੁੰਦੇ ਹਾਂ。
ਅਸੀਂ ਹੇਠ ਲਿਖੇ SQL ਸਟੇਟਮੈਂਟ ਵਰਤੀਏ ਹਨ:
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer
ਨਤੀਜੇ ਸੈੱਟ ਇਸ ਤਰ੍ਹਾਂ ਦੇ ਹੋਵੇਗਾ:
Customer | SUM(OrderPrice) |
---|---|
Bush | 2000 |
Carter | 1700 |
Adams | 2000 |
ਬਹੁਤ ਚੰਗਾ ਨਹੀਂ, ਨਾ?
ਅਸੀਂ ਇਹ ਦੇਖੀਏ ਕਿ ਜੇਕਰ ਮੈਂਬਰ ਗਰੁੱਪ ਨੂੰ ਖਤਮ ਕਰ ਦੇਈਏ ਤਾਂ ਕੀ ਹੋਵੇਗਾ:
SELECT Customer,SUM(OrderPrice) FROM Orders
ਨਤੀਜੇ ਸੈੱਟ ਇਸ ਤਰ੍ਹਾਂ ਦੇ ਹੋਵੇਗਾ:
Customer | SUM(OrderPrice) |
---|---|
Bush | 5700 |
Carter | 5700 |
Bush | 5700 |
Bush | 5700 |
Adams | 5700 |
Carter | 5700 |
ਉਸ ਨਤੀਜੇ ਸੈੱਟ ਸਾਡੇ ਲਈ ਨਹੀਂ ਹੈ。
ਤਾਂ ਇਹ ਕਿਉਂ ਉਸ ਤਰ੍ਹਾਂ ਦਾ SELECT ਸਟੇਟਮੈਂਟ ਨਹੀਂ ਵਰਤਿਆ ਜਾ ਸਕਦਾ? ਪ੍ਰਕਾਸ਼ਨ ਹੇਠ ਵਿੱਚ ਦੇਖੋ:ਉਸ ਤਰ੍ਹਾਂ ਦਾ SELECT ਸਟੇਟਮੈਂਟ ਦੋ ਕਾਲਮ (Customer ਅਤੇ SUM(OrderPrice)) ਸ਼ਾਮਿਲ ਕਰਦਾ ਹੈ।"SUM(OrderPrice)" ਇੱਕ ਮਾਤਰ ਮੁੱਲ ("OrderPrice" ਕਾਲਮ ਦਾ ਕੁੱਲ) ਵਾਪਸ ਦਿੰਦਾ ਹੈ, ਜਦਕਿ "Customer" 6 ਮੁੱਲ (ਹਰੇਕ ਮੁੱਲ "Orders" ਟੇਬਲ ਦੀ ਹਰੇਕ ਰਿਕਾਰਡ ਲਈ) ਵਾਪਸ ਦਿੰਦਾ ਹੈ।ਇਸ ਲਈ ਅਸੀਂ ਸਹੀ ਨਤੀਜਾ ਨਹੀਂ ਮਿਲਦੇ।ਪਰ, ਤੁਸੀਂ ਦੇਖਿਆ ਹੈ ਕਿ 'GROUP BY' ਸਟੇਟਮੈਂਟ ਇਹ ਸਮੱਸਿਆ ਹੱਲ ਕਰਦਾ ਹੈ。
GROUP BY ਇੱਕ ਤੋਂ ਜ਼ਿਆਦਾ ਕਾਲਮ
ਅਸੀਂ ਵੀ ਇੱਕ ਤੋਂ ਜ਼ਿਆਦਾ ਕਾਲਮਾਂ 'GROUP BY' ਵਰਤ ਸਕਦੇ ਹਾਂ, ਇਸ ਤਰ੍ਹਾਂ:
SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders GROUP BY Customer,OrderDate
- ਪਿੰਨਾ ਪੰਨਾ SQL sum()
- ਅਗਲਾ ਪੰਨਾ SQL Having