1. SQL / Говнокод #17060

    −863

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    SELECT *
    	FROM session s
    	WHERE s.platform IS NOT NULL
    	GROUP BY s.user_id
    	HAVING MAX(s.open_utc)

    Но хоть можно понять что сказать пытались, и на том спасибо.

    Запостил: Lowezar, 03 Ноября 2014

    Комментарии (5) RSS

    • А что не так? (только то, что * и GROUP BY вместе?)
      В конечном результате смотреть можно только на user_id
      Ответить
      • Тем, например, что результат подразумевался примерно такой:
        SELECT *
        	FROM session s
        		INNER JOIN (
        			SELECT user_id, MAX(open_utc) AS max_utc
        			FROM session
        			WHERE platform IS NOT NULL
        		) smax ON (smax.user_id = s.user_id AND smax.max_utc = s.open_utc)
        	WHERE s.platform IS NOT NULL
        Ответить
        • А, да... заработался.

          HAVING MAX(s.open_utc) - это же бред в запросе (ТС) такое писать

          А оригинальный запрос вообще отрабатывается? Ошибку не выплёвывает?
          Ответить
          • Не, это-ж мускуль. Ему всё пофиг. :)
            Ответить
            • Группировку в джоине выше потерял. :) Хорошо, что не забыл "примерно" :)
              Ответить

    Добавить комментарий