Синтаксис SQL при использовании Row_Number для сортировки цены

Я сохранил свой синтаксис SQL в этом sqlfiddle.

http://sqlfiddle.com/#!6/80e00/8

WITH cte AS ( SELECT left(modelnumber,4) as ModelNumber, packetsize, price, row_number() over ( partition BY left(modelnumber,4),packetsize,price ORDER BY price ASC ) AS rownumber FROM test ) SELECT * FROM cte 

Я пытаюсь сортировать цену modelnumbers в порядке возрастания.

Я не уверен, почему мой синтаксис не возвращает результат, как ожидалось.

Моя цель – выбрать самую низкую цену для Left (ModelNumber, 4). Для этого. Мне нужно условие WHERE. Например, select * from cte where rownumber = 1 order by price asc . Но в настоящем выпуске мы получаем все рябины = 1

Ожидаемый результат

 MODELNUMBER PACKETSIZE PRICE ROWNUMBER 1000 1.1 10.5 1 1000 1.1 11.5 2 1000 1.1 13 3 1000 1.1 15 4 1000 2.1 10.5 1 

Оболочка раздела ROW_NUMBER указывает, когда вы хотите сбросить нумерацию на 1.

При разбиении по ModelNumber, Packetsize и Price вы выбираете почти разные значения для перезапуска нумерации.

Все, что вам действительно нужно сделать, это сбросить «цену» из раздела.

 WITH cte AS ( SELECT left(modelnumber,4) as ModelNumber, packetsize, price, row_number() over ( partition BY left(modelnumber,4),packetsize ORDER BY price ASC ) AS rownumber FROM test ) SELECT * FROM cte 

демонстрация

Interesting Posts

создать набор данных в SSRS с встроенной функцией

Комплексное редактирование сетки в C #

Представление производительности на пакетной обработке Java результата DB или добавление критериев serach в самом DB

Ошибка при запуске MVC4 на Azure

Повторная индексация большого стола – как я привинчен?

SQL Server: пользователи и логины. Откуда входит имя пользователя?

Получить содержимое файла через xp_cmdshell

Что может привести к сбою отчета SSRS на сервере отчетов при рендеринге?

Присоединиться к двум запросам / Разделить запрос

Структура Entity медленно подключается к базе данных?

Лучшие инструменты для разработчика c # / sql

C # строка сортировки с запятыми

Процедура или функция «stored_pr» ожидает параметр «@name», который не был предоставлен

Как заставить внутренние функции SQL по умолчанию соответствовать стандарту ISO 8061

Тестирование Sql Connection Validity

Давайте будем гением компьютера.