ROW_NUMBER(), RANK() და DENSE_RANK() ანალიტიკური ფუნქციები


ძალიან სასარგებლო ფუნქციებია გადანომრისთვის.

შევქმნათ ცხრილი:
CREATE TABLE t (v varchar2(1));
insert into t values('a');
insert into t values('a');
insert into t values('a');
insert into t values('b');
insert into t values('c');
insert into t values('c');
insert into t values('d');
insert into t values('e');
commit;

ამოვიღოთ მონაცემები:

SELECT
 v, 
 ROW_NUMBER() OVER(ORDER BY v),
 RANK() OVER(ORDER BY v),
 DENSE_RANK() OVER(ORDER BY v)
FROM t order by v
+---+------------+------+------------+
| V | ROW_NUMBER | RANK | DENSE_RANK |
+---+------------+------+------------+
| a |          1 |    1 |          1 |
| a |          2 |    1 |          1 |
| a |          3 |    1 |          1 |
| b |          4 |    4 |          2 |
| c |          5 |    5 |          3 |
| c |          6 |    5 |          3 |
| d |          7 |    7 |          4 |
| e |          8 |    8 |          5 |
+---+------------+------+------------+
გაითვალისწინეთ!!!

ROW_NUMBER() – თვის თუ გამოიყენებთ partition by – ს, მიიღებთ ძალიან საინტერესო შედეგს, თითოეული ჯგუფისთვის ნუმერაცია დაიწყება თავიდან 🙂

დატოვეთ კომენტარი