MySQL - rownum, rank, SQL_CALC_FOUND_ROWS
Oracle의 RANK() OVER 같은 결과를 만들어 낼 수 있는 SQL이다. 특정 Key1를 기준으로 해당 Key1내에서 Key2를 기준으로 순위를 만드는 SQL이다. (아래에서는 rnum을 기준으로, created에 따라서 순위를 만들고 있다.) SELECT * FROM ( SELECT a2.* , @rn := CASE WHEN @key1 != rnum THEN 1 ELSE @rn + 1 END AS rank , @rk := CASE WHEN @rn = 1 THEN 1 WHEN @key2 = created THEN @rk ELSE @rn END AS tmp_val , @key1 := rnum , @key2 := created FROM ( SELECT ... AS rnum , ... AS create..
2017.11.29