2017-01-27 13 views
0

Я использую сиквел pro для запуска некоторых запросов в большой базе данных, которая у меня есть. Я совершенно новичок в этом, поэтому, пожалуйста, извините, если мой вопрос глуп или очевиден.Как запросить конкретные значения в продолжении pro?

У меня есть данные от пользователей приложения, которые сыграли определенную игру (что в нашей базе данных имеет значение 32. Они могут играть несколько раз. Я выбираю COUNT (gamescore.Score), чтобы найти количество раз, когда они играли игра и новый балл будут записываться за каждый раз, когда они будут играть. Теперь я хочу знать, что их третий игровой счет был вовремя, если они играли несколько раз.

Я прикрепил изображение для лучшего объяснения. UserID 18211 несколько раз воспроизводил игру «32», и их оценки показываются в первом столбце. Я хочу знать, что такое оценка, когда они играли в игру в третий раз. Поэтому, глядя на стол, я знаю, что этот показатель составляет 109 в третий раз, когда они сыграли, который был на 2016-09-09. Но я должен сделать это для многих пользователей, чтобы я мог Посмотрите на них все вручную.

Вот код:

SELECT DISTINCT gamescore.UserID, COUNT(gamescore.Score), gamescore.GameId 
FROM gamescore 
WHERE gamescore.GameID = "32" 
GROUP BY gamescore.UserID 

Я не уверен в том, как изменить запрос, чтобы получить счет в 3-й раз они играли ... Может кто-нибудь помочь?

Образец данных: enter image description here

Благодаря

+0

Что вы имеете в виду под «3-й игрой» .. обновите свой вопрос, добавив правильный файл данных le и ожидаемый результат, пожалуйста, – scaisEdge

+0

@scaisEdge Я добавил дополнительную информацию и пример изображения. Надеюсь, что теперь яснее, чем я. –

+0

Запрос SQL 'sql (квота OR) (третий или n-й OR n-й)'. PS Пожалуйста, избегайте изображений, для таблиц, которые вы можете вырезать и вставить в блок кода. – philipxy

ответ

0

за 3-й игре счет вы можете использовать ограничение на упорядоченный по избранной, например:

select t.UserID , t.Score, t.dateCreated, t.GameId from (
      select UserID, Score, dateCreated, GameId 
      from gamescore 
      WHERE GameID = '32' 
      and UserId = 18211 
      order by dateCreated limit 3 
     ) t 
    order by dateCreated limit 1 desc 

но получить эти результаты для всех UserId вы должны перебрать серверную часть в свой список UserId и повторить выбор для каждого пользователя

+0

Я получаю эту ошибку, когда я запускаю ее: [ОШИБКА в запросе 2] У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «asc ). Сортировать по датеУдаленный предел 1 desc 'в строке 6 –

+0

@MaheenSiddiqui ответ обновлен (отсутствует t для имени таблицы) – scaisEdge

+0

По-прежнему получает ту же ошибку. ... –