| uId | title | amount | makers | widgets |
1 richard 998 xcorp sprocket
2 swiss 995 ycorp framitz
3 ricky 90 zcorp flobber
4 ricky2 798 xcorp framitz
1 lilrick 390 xcorp sprocket
1 brie 200 mcorp gullywok
1 richard 190 rcorp flumitz
1 brie 490 bcorp sprocket
и т.д ...
Я пытаюсь получить только 3 записи на производителей
, 3 лучших количества
и виджетов
, которые они создали
Вот что у меня есть:
SELECT amount, makers FROM (SELECT amount, makers, (SELECT count(*) FROM entry as t2
WHERE t2.amount = t1.amount and t2.makers >= t1.makers) AS RowNum
FROM entry as t1
) t3
WHERE t3.RowNum<4 order by amount;
Возвращает ли это то, что мне действительно нужно? Есть ли лучший способ сделать это? Большинство способов, которые я видел для этого, - это объединение и т. Д. В разрозненных таблицах, вся необходимая мне информация находится на одной таблице.
Ожидаемый результат:
| uId | title | amounts | makers | widgets |
1 richard 998 xcorp sprocket
41 swiss 995 xcorp widget
989 richard 989 xcorp sprocket
22 swiss 995 ycorp framitz
92 swiss 990 ycorp widget
456 swiss 895 ycorp flobber
344 ricky 490 zcorp flobber
32 tricky 480 zcorp flobber
13 ricky 470 zcorp flobber
и т. Д.
Порядок производителей
не так важен, как получение 3 суммы
для каждого производители
и предоставленные ими виджеты
. Количество производителей
установлено, всегда будет x
производителей