Sobes.tech
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-ի հիման վրա։