Я изо всех сил пытаюсь написать запрос, который возвращает то, что я хочу. Таблица:
|---------------------|------------------|------------------|------------------|
| -- filename -- | -- url -- | -- pixels -- | -- id -- |
|---------------------|------------------|------------------|------------------|
| myfilename1 | url1 | 3100 | 1 |
|---------------------|------------------|------------------|------------------|
| myfilename2 | url1 | 1200 | 2 |
|---------------------|------------------|------------------|------------------|
| myfilename3 | url2 | 3000 | 3 |
|---------------------|------------------|------------------|------------------|
| myfilename4 | url3 | 4000 | 4 |
|---------------------|------------------|------------------|------------------|
| myfilename5 | url3 | 5000 | 5 |
|---------------------|------------------|------------------|------------------|
Как я хочу получить результаты:
|---------------------|------------------|------------------|------------------|
| -- filename -- | -- url -- | -- pixels -- | -- id -- |
|---------------------|------------------|------------------|------------------|
| myfilename4 | url3 | 4000 | 4 |
|---------------------|------------------|------------------|------------------|
| myfilename5 | url3 | 5000 | 5 |
|---------------------|------------------|------------------|------------------|
| myfilename1 | url1 | 3100 | 1 |
|---------------------|------------------|------------------|------------------|
| myfilename2 | url1 | 1200 | 2 |
|---------------------|------------------|------------------|------------------|
| myfilename3 | url2 | 3000 | 3 |
|---------------------|------------------|------------------|------------------|
В основном я бы хотел, чтобы результаты были упорядочены так, чтобы URL-группы "упорядочивались" пиксель между собой, а затем каждая группа внутренне упорядочена по id. Как вы можете видеть в таблице результатов, которые я хотел бы, максимум столбца пикселей составляет 5000, поэтому группа «url3» является первой, и она упорядочена по id. Затем следует группа url1, для которой локальный максимум является вторым по величине (3100).
Обратите внимание, что количество строк может составлять десятки тысяч, и не будет отображаться больше строк, а может быть и больше. добавлено в будущем, поэтому жестко закодированные ответы бесполезны. Это должно быть разбито на страницы по URL, поэтому запрос также должен поддерживать ограничения и смещение по URL, а не по именам файлов (например, возвращать все строки, принадлежащие nth 20 URL-адресам, упорядоченным этим методом). Я пробовал упорядочивать по MAX, OVER PARTITION и т. П., Но я просто не могу понять, как это сделать.
Моя последняя попытка была сбита тем фактом, что я не могу смешать MAX () и OVER PARTITION, потому что единственный способ, которым я мог придумать, - это разделить локальный максимум каждого URL. Я подозреваю, что может быть какой-то способ сделать это с внутренним соединением, но я просто не знаю, с чего начать, потому что Мне нужно выбрать целые строки , а не только некоторые столбцы, поэтому я могу не выбирайте каждый столбец вручную.