|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
Добрый день. Есть запрос вида SELECT top 2 with ties ROW_NUMBER() OVER (PARTITION BY Продукт ORDER BY Цена DESC) AS N , * FROM table1 where Продукт in ('Продукт 1', 'Продукт 2') order by ROW_NUMBER() OVER (PARTITION BY Организация ORDER BY COUNT(Цена) DESC) Но результат всё равно выдает по одной строке на каждый продукт. Если поставить TOP 6 - выдает по 3 строки. Как сделать запрос, чтобы результат был по 2 или более ROW_NUMBER() для каждого продукта? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 11:19 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
Прошу прощения опечатка.. Добрый день. Есть запрос вида SELECT top 2 with ties ROW_NUMBER() OVER (PARTITION BY Продукт ORDER BY Цена DESC) AS N , * FROM table1 where Продукт in ('Продукт 1', 'Продукт 2') order by ROW_NUMBER() OVER (PARTITION BY Продукт ORDER BY Цена DESC) Но результат всё равно выдает по одной строке на каждый продукт. Если поставить TOP 6 - выдает по 3 строки. Как сделать запрос, чтобы результат был по 2 или более ROW_NUMBER() для каждого продукта? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 11:25 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
select * from ( SELECT top 2 with ties ROW_NUMBER() OVER (PARTITION BY Продукт ORDER BY Цена DESC) AS N , * FROM table1 where Продукт in ('Продукт 1', 'Продукт 2') ) z where N <3 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 11:25 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 11:26 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
LoopN, в этом случае не сработает 'with ties', а это важно в моем случае. Если написать select * from ( SELECT ROW_NUMBER() OVER (PARTITION BY Продукт ORDER BY Цена DESC) AS N , * FROM table1 where Продукт in ('Продукт 1', 'Продукт 2') ) z where N <3 то получим только те записи, у которых ROW_NUMBER() = 3, а with ties дал бы результат всех записей, у которых цена такая же как и у ROW_NUMBER() = 3 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 11:37 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
myrzilka, Словами опишите, что должно быть на выходе. TOP(2) WITH TIES вам не подойдёт - печёнкой чую! Но надо убедиться после ваших разъяснений. Например, один продукт (PARTITION BY Продукт) может иметь две и более цены? Как это? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 12:34 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
iapНапример, один продукт (PARTITION BY Продукт) может иметь две и более цены? Как это? ну например там еще есть колонка "модель" или "сорт". и вот у него есть продукт = яблоко, сортов аж 10, из них только у 5ти одинаковая цена. и хочет он вывести 2 любых самых дорогих, но именно яблок. т.е. из 5 сортов по одной и той же цене вывести только 2(первые попавшиеся?). и то же самое для продукта "груша" --- уж собрать тестовую табличку с 3 полями и десятком строк наверное дело 5ти минут ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 13:20 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
o-oи вот у него есть продукт = яблоко, сортов аж 10, из них только у 5ти одинаковая цена. и хочет он вывести 2 любых самых дорогих, но именно яблок. т.е. из 5 сортов по одной и той же цене вывести только 2(первые попавшиеся?). и то же самое для продукта "груша" Хуже. Он хочет получить как минимум первые 2 самые дорогие, причём если есть ещё записи, цена в которых равна цене второй записи - получить и их тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 13:24 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
а, ну да, тогда все логично: 2 самых дорогих "яблок" со всеми видами-подвидами. --- почему бы не сложить свои 'Продукт 1', 'Продукт 2' хотя бы даже в табличную переменную и прилепить к ним стоки из top 2 with ties через cross apply? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 13:34 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
myrzilka, похоже на экзамен на знание старых тем на форуме Недавно такую задачу решали. Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 13:36 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
ошибся слегка, вот так больше похоже: Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 13:40 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
Похоже, это то, что нужно! Спасибо большое! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 13:47 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
и что получается в результате? вот на таких данных получили 3 вида яблок по самой дорогой цене (и где тут топ 2 цен для яблока?) и 2 вида груш (тут ок, 2 цены вышло) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 13:59 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
o-oи что получается в результате? вот на таких данных получили 3 вида яблок по самой дорогой цене (и где тут топ 2 цен для яблока?) и 2 вида груш (тут ок, 2 цены вышло) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
запрос сделан с расчетом на постановку, что нужно получить минимум 2 модели с самыми высокими целями - тогда результат достигнут. Для вашей постановки (все модели с 2 самыми высокими ценами) нужно использовать dense_rank. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 14:07 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
Minamotoзапрос сделан с расчетом на постановку, что нужно получить минимум 2 модели с самыми высокими целями ценами- тогда результат достигнут. Для вашей постановки (все модели с 2 самыми высокими ценами) нужно использовать dense_rank. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 14:08 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
у меня при таком запросе вообще у всех одинаковый rank ставится и выводятся все значения. Поясню еще раз, что нужно. Есть яблоки, груши, помидоры... у них могут быть виды - красное, белое, зеленое. У каждого вида своя цена. Яблок и груш n- ное количество. Надой найти top 2 тех овощей или фруктов, у которых сумма со всеми подвидами наибольшая. Но при этом в результате запросам надо получить такие столбцы N Фрукт/Овощ Вид Кол-во 1 Яблоки Красное 45 2 Груши Белое 41 3 Яблоки Зеленое 14 4 Помидоры Красное 13 Но в данном случае получаем не совсем правильную сортировку, т.к. Яблоки считаются два раза (из-за того, что мы выводим и виды тоже). Не знаю, может вообще так нельзя сделать... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 14:10 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
myrzilkaу меня при таком запросе вообще у всех одинаковый rank ставится и выводятся все значения. Поясню еще раз, что нужно. Есть яблоки, груши, помидоры... у них могут быть виды - красное, белое, зеленое. У каждого вида своя цена. Яблок и груш n- ное количество. Надой найти top 2 тех овощей или фруктов, у которых сумма со всеми подвидами наибольшая. Но при этом в результате запросам надо получить такие столбцы N Фрукт/Овощ Вид Кол-во 1 Яблоки Красное 45 2 Груши Белое 41 3 Яблоки Зеленое 14 4 Помидоры Красное 13 Но в данном случае получаем не совсем правильную сортировку, т.к. Яблоки считаются два раза (из-за того, что мы выводим и виды тоже). Не знаю, может вообще так нельзя сделать... Мда, понятнее не стало. Дайте первоначальное наполнение - приведите код создания и заполнения тестовых таблиц, и определение, что вы понимаете под "суммой с подвидами". А то в запросе у вас только цена фигурирует, а в этом объяснении внезапно количество появляется. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 14:15 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
из его постановки задачи конечно вообще непонятно, что надо. но слова минимум там точно нет. меня просто удивила неконсистентность результата в том плане, что для одного продукта вываливает всего 1 цену, для второго две. с вашей формулировкой конечно понятнее ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 14:16 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
myrzilkaНадой найти top 2 тех овощей или фруктов, у которых сумма со всеми подвидами наибольшая. теперь уже сумма вылезла. а где же она считается в первом посте? да вообще по-моему впервые появилась ближе к концу обсуждения... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 14:18 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
o-o, сумма - имеется ввиду "Количество". Яблоки должны быть в top, потому что в сумме их больше всех - 59, а сейчас выводятся груши в топ. rank Фрукт/Овощ Вид Кол-во 1 Груши Белое 50 2 Яблоки Красное 45 3 Яблоки Зеленое 14 4 Помидоры Красное 13 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 14:25 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
час от часу не легче. сперва в запросе была цена, потом она ушла и не вернулась. зато вылезло Количество, а где оно в первоначальном запросе? авторсумма - имеется ввиду "Количество". Яблоки должны быть в top, потому что в сумме их больше всех - 59 так все-таки сумма есть? или я чего-то не вижу строку с Количество = 59. зато вижу 45 + 14!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 14:30 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
o-o, да, я имею виду именно 45-14 :) (простите за сумбурность). Вопрос - можно ли как-то присвоить Яблокам одинаковый Rank ? Чтобы, когда я напишу в итоге вывести значения, у которых Rank >= 2 , то отобралось бы 3 строки - Груши и два Яблока. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 14:36 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
myrzilka, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 14:52 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
myrzilka, это, что ли, хотите? Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 14:54 |
|
Top 2 with ties (Некорректный результат запроса).Помогите, пожалуйста
|
|||
---|---|---|---|
#18+
Minamotomyrzilka, это, что ли, хотите? Код: sql 1. 2. 3. 4.
Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 14:55 |
|
|
start [/forum/topic.php?fid=46&tid=1690998]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
327ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 454ms |
0 / 0 |