Middle — Senior
Чӣ гуна медиаҳоро дар SQL бе функсияи дарунсохт ҳисоб кардан мумкин аст? Чӣ гуна шумораи сатрҳоро дар ҷадвал ҳисоб кардан мумкин аст? Оё шумо функсияҳои тирезаиро медонед?
sobes.tech AI
Ҷавоб аз AI
SQL-да встроенная функциясыз медиана терезе функциялары немесе ішкі сұрауларды пайдалана отырып есептелуі мүмкін. Мысалы, value атты сандық бағаны бар кесте үшін:
SELECT AVG(value) AS median FROM (
SELECT value, ROW_NUMBER() OVER (ORDER BY value) AS rn, COUNT(*) OVER () AS cnt
FROM your_table
) sub
WHERE rn IN ((cnt + 1) / 2, (cnt + 2) / 2);
Мұнда:
ROW_NUMBER()мәні бойынша өсу ретімен жолдарды нөмірлейді.COUNT(*) OVER ()жалпы жолдар санын есептейді.- Екі орталық элементтің орташа мәні алынады (жұп санды жағдайда) немесе бір орталық (таза санды жағдайда).
Кестедегі жолдар санын есептеу өте оңай:
SELECT COUNT(*) FROM your_table;
Терезе функциялары — бұл ағымдағы жолмен байланысты жолдар жиынында есептеулер жүргізетін, нәтижені бір жолға қысқартпайтын функциялар. Олар рангтау, қозғалыс сомалары, медианалар және т.б. үшін пайдалы.
Терезе функциясының мысалы:
SELECT value, ROW_NUMBER() OVER (ORDER BY value) AS rn FROM your_table;
Бұл value бойынша жолдарды өсу ретімен нөмірлейді.