Какая польза от аналитической функции oracle first_Value? - PullRequest
0 голосов
/ 25 октября 2019

У меня есть запрос, в котором first_value () используется в качестве аналитической функции.

SELECT 
    product_id, 
    product_name,
    list_price, 
    FIRST_VALUE(product_name) 
     OVER (ORDER BY list_price) first_product,
     category_id
FROM 
    ot.products
WHERE 
    category_id = 1;

Вывод, который я получил: enter image description here

Здесь я получил70 строк.

Итак, я попробовал новый запрос как:

SELECT product_id, 
       product_name, 
       list_price 
FROM   ot.products 
WHERE  category_id = 1 
ORDER  BY list_price; 

Вывод, который я получил:

enter image description here

В этом запросе я снова получил 70 строк. Итак, я не понимаю, как использовать fisrt_value () в первом запросе? Поскольку данные, которые я получаю, такие же, как и использование этой аналитической функции?

1 Ответ

1 голос
/ 25 октября 2019

Итак, я не понимаю, как используется first_value () в первом запросе?

Ну, это просто перечисление самого дешевого продукта для каждой записи в вашем наборе результатов встолбец под названием «Первый продукт»

Поскольку данные, которые я получаю, одинаковы, для чего используется эта аналитическая функция?

Но все по-другому. у вас есть "первый столбец продукта" в вашем первом запросе. Может быть, кто-то использует его для сравнения позже. Может быть, это быстрая ссылка на самый дешевый продукт в наборе результатов позже ... Не могу сказать, ПОЧЕМУ кто-то закодировал его таким образом;но я могу придумать несколько предположений.

Обратите внимание: «Intel Core i7-5930K - самый дешевый продукт в наборе результатов;и, таким образом, попадает в список всех остальных записей в наборе результатов благодаря использованию аналитической функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...