2015-03-23 6 views
-1

Я искал, но ответы, которые я нахожу, касаются MAX в данном столбце для всей таблицы.

Мне нужно выбрать наивысший (до 4) для каждого из значений другого столбца во вторую таблицу. Было бы проще всего представить как нечто простое ...

Выбор строк наибольшего значения Для каждого другого значения столбца?

Scores_Stored 
ID, UserID, Score, date, etc 
1, 4,  325, .... 
2, 5,  276, .... 
3, 5,  341, .... 

В этом примере я должен был бы самый высокий балл «» оцененный строки для каждого UserID.

Я пробовал различные способы соединения таблицы с самим собой с использованием псевдонимов, но я все время зацикливаюсь либо на чем-то, что соответствует самым высоким 5 в целом, либо продолжает сортировать один и тот же выбор.

Я должен попробовать снова после некоторого сна, но я бы очень хотел закончить это.

+1

ли вам нужно ДО 4 в UserID рекордов или 4 для всех рекордов пользователей? И что вы уже пробовали? – scones

ответ

0

Это должно быть то, что вы ищете:

SELECT UserID, MAX(Score) AS Score 
FROM Scores_Stored 
GROUP BY UserID 
ORDER BY Score 
LIMIT 0, 5 
+0

Я пробовал это, и тем полезнее (для моих целей). SELECT *, MAX (оценка) INTO .. ​​ , но он не работает должным образом. Каждое использование MAX (что-либо), которое я использую, генерирует вывод из предыдущих столбцов, за которым следует пустая ячейка с именем «MAX (ничего)» –

+0

. Вы можете добавить WHERE Score IS NOT NULL. Но он должен всегда возвращать максимальный балл. Как вы подтверждаете, что это empy? Использование PHP? Вам понадобится псевдоним (AS Score), чтобы выбрать его в PHP как «Score». – JochenJung

+0

Использовал MySQL только в HeidiSQL. Я переключился на терминал для SQL - он дал список строк, но только 5 элементов из таблицы с более чем 100 000 уникальными эквивалентами «UserID». –

0

Это должно работать

select max(score) as max_score,user_id from score_Stored group by user_id; 
Смежные вопросы