2014-03-25 2 views

답변

1

이것은 SQLite에서 작동합니다.

SELECT min(column_name) 
FROM table_name 
GROUP BY substr(column_name, 1, 1) 

다른 시스템에서는 부분 문자열 구문이 다를 수 있습니다. 첫 번째 문자로 데이터를 그룹화 한 다음 그룹에서 각 문자의 알파벳순 최소값을 반환합니다.

- 당신은 전체 행을해야하는 경우 편집 (1/2)

, 그것은 전체 행을 보려면 위의 쿼리의 결과를 사용하는 것이 아마도 가장 좋습니다. 그래서 같이 :

SELECT table_name.* 
FROM table_name 
JOIN 
    (SELECT min(column_name) AS column_name 
    FROM table_name 
    GROUP BY substr(column_name, 1, 1)) sub_query 
ON table_name.column_name = sub_query.column_name 
GROUP BY column_name 
HAVING table_name.ROWID = min(table_name.ROWID) 

- 편집 (2/2)

추가 된 마지막 두 줄 (GROUP BY 및 HAVING). 그들은 중복을 피하기 위해 필요합니다. column_name에 중복 항목이 있으면 가장 낮은 ROWID를 가진 항목이 선택됩니다.

+0

나는 최소를 원하지 않으며, 나는 정확히 한 행을 원합니다. – everydayapps

+0

그냥 사용해보십시오. 데이터 집합이 Abc 인 경우; Abd; 아베; Bbc; Bbd; 이 쿼리는 Abc를 반환합니다. Bbc. – Jozua

+0

이름을 기준으로 정렬하고 싶지만 CATEGORY라고 말하면 다른 열을 가져 오려면 어떻게 수정합니까? – everydayapps

관련 문제