id | field_1 | field_2
1 | a | 1
2 | b | 1
SELECT id, field_1 FROM table GROUP BY field_2
그러면 ID가 1 인 행이 생성됩니다. 가장 큰 ID를 가진 행을 어떻게 얻을 수 있습니까? (나는 field_1 = b를 얻고 싶다). 이것을 달성하는 가장 쉬운 방법은 무엇입니까?SQL을 그룹화 할 때 행 선택
도움 주셔서 감사합니다.
id | field_1 | field_2
1 | a | 1
2 | b | 1
SELECT id, field_1 FROM table GROUP BY field_2
그러면 ID가 1 인 행이 생성됩니다. 가장 큰 ID를 가진 행을 어떻게 얻을 수 있습니까? (나는 field_1 = b를 얻고 싶다). 이것을 달성하는 가장 쉬운 방법은 무엇입니까?SQL을 그룹화 할 때 행 선택
도움 주셔서 감사합니다.
SELECT t1.id, t1.field_1, t2.IdSum
FROM table t1
INNER JOIN
(
SELECT field_2, MAX(id) id, SUM(id) IdSum
FROM Table
GROUP BY field_2
) t2 on t1.id = t2.id
AND t1.field_2 = t2.field_2;
이 식은 하지는 정의에 의해 첫 번째 행을 얻을 않는다 : 그것은 field2
의 각 값에 대해 임의 행의 값을 얻을 무엇
SELECT id, field_1
FROM table
GROUP BY field_2
한다. 임의의 행이 최초의 행인 경우도 있습니다. 다만, 보증은 없습니다. 이것을 이해하려면 숨겨진 열에 대해서는 documentation을보십시오.
MySQL에서는 가장 높은 ID를 가진 행을 가져 오기 위해 조인이 필요합니다. 한 가지 방법이 있습니다 :
select t.*
from t
where id = (select max(id) from t t2 where t2.field2 = t.field2)
이렇게하면 field2의 각 값에 대해 가장 높은 ID를 가진 모든 행을 가져옵니다.
잘 설명해 주셔서 감사합니다. – lawls
참조 : http://dev.mysql.com/doc/refman/5.0/en/example-maximum-column-group-row.html –