ਇਕੱਠੇ ਫੰਕਸ਼ਨ ਬਹੁਤ ਸਾਰੀਆਂ ਕਤਾਰਾਂ ਤੋਂ ਇੱਕ ਸਿੰਗਲ ਮੁੱਲ ਦੀ ਗਣਨਾ ਕਰਦੇ ਹਨ — COUNT, SUM, AVG, MIN, MAX। ਇਹ ਡਾਟਾ ਦਾ ਸਾਰ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਹਨ (ਕੁੱਲ, ਔਸਤ, ਗਿਣਤੀ), ਖਾਸ ਕਰਕੇ ਦੇ ਨਾਲ ਜੋੜ ਕੇ।
ਇਕੱਠੇ ਫੰਕਸ਼ਨ ਬਹੁਤ ਸਾਰੀਆਂ ਕਤਾਰਾਂ ਤੋਂ ਇੱਕ ਸਿੰਗਲ ਮੁੱਲ ਦੀ ਗਣਨਾ ਕਰਦੇ ਹਨ — COUNT, SUM, AVG, MIN, MAX। ਇਹ ਡਾਟਾ ਦਾ ਸਾਰ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਹਨ (ਕੁੱਲ, ਔਸਤ, ਗਿਣਤੀ), ਖਾਸ ਕਰਕੇ ਦੇ ਨਾਲ ਜੋੜ ਕੇ।
GROUP BYSELECT
COUNT(*) AS total_rows, -- count all rows
COUNT(email) AS rows_with_email, -- count NON-NULL emails (ignores NULLs!)
SUM(amount) AS total_amount, -- sum of a column
AVG(price) AS average_price, -- average
MIN(price) AS lowest, -- minimum
MAX(price) AS highest -- maximum
FROM orders;
ਹਰੇਕ ਫੰਕਸ਼ਨ ਬਹੁਤ ਸਾਰੀਆਂ ਕਤਾਰਾਂ ਨੂੰ ਇੱਕ ਮੁੱਲ ਵਿੱਚ ਘਟਾ ਦਿੰਦਾ ਹੈ। SUM/AVG ਨੰਬਰਾਂ ਉੱਤੇ ਕੰਮ ਕਰਦੇ ਹਨ; MIN/MAX ਨੰਬਰਾਂ, ਤਾਰੀਖਾਂ ਜਾਂ ਟੈਕਸਟ ਉੱਤੇ; COUNT ਕਿਸੇ ਵੀ ਚੀਜ਼ ਉੱਤੇ।
COUNT(*) -- counts ALL rows (including those with NULLs)
COUNT(email) -- counts only rows where email is NOT NULL
COUNT(DISTINCT country) -- counts UNIQUE non-null values
COUNT(*) ਸਾਰੀਆਂ ਕਤਾਰਾਂ ਨੂੰ ਗਿਣਦਾ ਹੈ, ਪਰ COUNT(column) ਸਿਰਫ਼ ਉਹਨਾਂ ਕਤਾਰਾਂ ਨੂੰ ਗਿਣਦਾ ਹੈ ਜਿੱਥੇ ਉਹ ਕਾਲਮ NULL ਨਹੀਂ ਹੈ — ਇੱਕ ਸੂਖਮ ਪਰ ਮਹੱਤਵਪੂਰਨ ਅੰਤਰ। COUNT(DISTINCT col) ਯੂਨਿਕ ਮੁੱਲਾਂ ਨੂੰ ਗਿਣਦਾ ਹੈ।
-- aggregate PER GROUP instead of the whole table
SELECT country, COUNT(*) AS users, AVG(age) AS avg_age
FROM users
GROUP BY country; -- one result row per country
-- → for each country: how many users and their average age
GROUP BY ਤੋਂ ਬਿਨਾ, ਇੱਕ ਇਕੱਠਾ ਫੰਕਸ਼ਨ ਸਾਰੇ ਨਤੀਜੇ ਨੂੰ ਇੱਕ ਕਤਾਰ ਵਿੱਚ ਸਾਰ ਕਰਦਾ ਹੈ। GROUP BY ਦੇ ਨਾਲ, ਇਹ ਇੱਕ ਸਾਰ ਕਤਾਰ ਪ੍ਰਤੀ ਗਰੁੱਪ ਪੈਦਾ ਕਰਦਾ ਹੈ — ਖੁਦਮੁਖਤਿਆਰ, ਤਾਕਤਵਰ ਉਪਯੋਗ।
-- ❌ ERROR — can't mix an aggregate with a non-grouped column
SELECT name, COUNT(*) FROM users; -- which name? ambiguous
-- ✅ either group by it, or only select aggregates
SELECT country, COUNT(*) FROM users GROUP BY country;
ਇਕੱਠੇ ਫੰਕਸ਼ਨ ਡਾਟਾ ਦਾ ਸਾਰ ਅਤੇ ਵਿਸ਼ਲੇਸ਼ਣ ਲਈ ਜ਼ਰੂਰੀ ਹਨ — ਕੁੱਲ, ਔਸਤ, ਗਿਣਤੀ, ਅਤੇ ਅਤਿਅੰਤ ਦੀ ਗਣਨਾ ਰਿਪੋਰਟਿੰਗ, ਵਿਸ਼ਲੇਸ਼ਣ, ਡੈਸ਼ਬੋਰਡ, ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਲਾਜਿਕ ਵਿੱਚ ਸਥਿਰ ਲੋੜ ਹੈ, ਇਸ ਲਈ ਇਨ੍ਹਾਂ ਨੂੰ ਸਮਝਣਾ ਬੁਨਿਆਦੀ SQL ਗਿਆਨ ਹੈ।
ਮੁੱਖ ਫੰਕਸ਼ਨਾਂ (COUNT, SUM, AVG, MIN, MAX) ਨੂੰ ਜਾਣਨਾ ਅਤੇ ਇਹ ਸਮਝਨਾ ਕਿ ਇਹ ਕਤਾਰਾਂ ਦੇ ਸੈੱਟ ਨੂੰ ਸਿੰਗਲ ਮੁੱਲਾਂ ਵਿੱਚ ਕਿਵੇਂ ਘਟਾਉਂਦੇ ਹਨ, ਕਿਸੇ ਵੀ ਡਾਟਾ ਸਮੀਖਿਆ ਲਈ ਜ਼ਰੂਰੀ ਹੈ।
ਇੱਕ ਮਹੱਤਵਪੂਰਨ, ਆਮ ਤੌਰ ਤੇ ਗਲਤ ਸਮਝਿਆ ਜਾਣ ਵਾਲਾ ਵੇਰਵਾ ਹੈ COUNT(*) ਬਨਾਮ COUNT(column) ਅੰਤਰ (COUNT(*) ਸਾਰੀਆਂ ਕਤਾਰਾਂ ਨੂੰ ਗਿਣਦਾ ਹੈ, COUNT(column) ਸਿਰਫ਼ ਗੈਰ-NULL ਮੁੱਲਾਂ ਨੂੰ ਗਿਣਦਾ ਹੈ — ਜੋ ਵੱਖਰੇ, ਅਚੰਭਿਤ ਨਤੀਜੇ ਦੇ ਸਕਦੇ ਹਨ), ਨਾਲ ਹੀ COUNT(DISTINCT) ਯੂਨਿਕ ਮੁੱਲਾਂ ਲਈ।
ਸਭ ਤੋਂ ਤਾਕਤਵਰ ਢੰਗ ਨਾਲ, ਇਕੱਠੇ ਫੰਕਸ਼ਨ GROUP BY ਦੇ ਨਾਲ ਜੁੜਦੇ ਹਨ ਤਾਂ ਜੋ ਪ੍ਰਤੀ-ਗਰੁੱਪ ਸਾਰ (ਵਰਗ ਪ੍ਰਤੀ ਗਿਣਤੀ/ਔਸਤ) ਪੈਦਾ ਕਰ ਸਕੇਂ — ਵਿਸ਼ਲੇਸ਼ਣਾਤਮਕ ਸਵਾਲਾਂ ਦੀ ਬੁਨਿਆਦ।
ਫਾਂਸਲੇ ਨੂੰ ਸਮਝਣਾ ਕਿ ਤੁਸੀਂ ਇਕੱਠੇ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਗੈਰ-ਗਰੁੱਪ ਕੀਤੀਆਂ ਕਾਲਮਾਂ ਦੇ ਨਾਲ ਮਿਲਾ ਨਹੀਂ ਸਕਦੇ (ਇੱਕ ਆਮ ਗਲਤੀ) ਵੀ ਮਹੱਤਵਪੂਰਨ ਹੈ।
ਕਿਉਂਕਿ ਡਾਟਾ ਦਾ ਸਾਰ ਕਰਨਾ ਇੱਕ ਵਿਆਪਕ ਡਾਟਾਬੇਸ ਕਾਰਜ ਹੈ (ਹਰ ਰਿਪੋਰਟ, ਡੈਸ਼ਬੋਰਡ, ਅਤੇ ਵਿਸ਼ਲੇਸ਼ਣ ਸਵਾਲ ਇਕੱਠੇ ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ), ਅਤੇ ਕਿਉਂਕਿ ਫੰਕਸ਼ਨਾਂ, COUNT ਕੀ ਪੂਛਾਂ, ਅਤੇ ਖਾਸ ਕਰਕੇ ਉਨ੍ਹਾਂ ਦੀ GROUP BY ਨਾਲ ਸਮਝ ਮੁਲਾਂ ਡਾਟਾ ਵਿਸ਼ਲੇਸ਼ਣ ਵਿੱਚ ਬੁਨਿਆਦੀ ਹੈ, ਇਕੱਠੇ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਮੁਹਾਰਤ ਮੁੱਖ, ਵਾਰ-ਵਾਰ ਲਾਗੂ ਕੀਤਾ ਜਾਣ ਵਾਲਾ ਗਿਆਨ ਹੈ ਜੋ ਡਾਟਾ ਦੇ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਹੈ — ਬੁਨਿਆਦੀ ਸਵਾਲ ਅਤੇ ਵਿਸ਼ਲੇਸ਼ਣਾਤਮਕ, ਸਾਰ ਕਰਨ ਦੀ ਸ਼ਕਤੀ ਦੇ ਵਿਚਕਾਰ ਪੁਲ ਜੋ SQL ਨੂੰ ਰਿਪੋਰਟਿੰਗ ਅਤੇ ਗਹਿਰਾਈ ਲਈ ਮੁੱਲਵਾਨ ਬਣਾਉਂਦੀ ਹੈ।