특정 데이터베이스 항목 당 하나의 행만 반환해야합니다. 예 : 내가있는 경우 :SQL SELECT DISTINCT 및 GROUP BY 문제
ID col1 col2
1 1 A
2 1 B
3 1 C
4 2 D
5 3 E
6 4 F
7 4 G
의 MySQL에서 나는 쿼리
SELECT DISTINCT col1, col2 FROM table GROUP BY col1
를 실행할 수 있습니다 내가 얻을 것이다 -> 내가 원하는,하지만 무엇
ID col1 col2
1 1 A
4 2 D
5 3 E
6 4 F
나도 같은 실행하는 경우 SQL Server에서 쿼리 오류가 발생했습니다.
그래서 기본적으로 테이블의 각 행에서 하나 또는 "첫 번째" "col1"및 "col2"만 반환해야합니다.
SQL Server의 올바른 구문은 무엇입니까?
감사합니다.
안드레이
편집 :
MySQL의 작동 전체 쿼리가 ->가
SELECT DISTINCT list_order, category_name, category_id
FROM `jos_vm_category`
WHERE `category_publish` = 'Y'
GROUP BY list_order
때문에, 각 "list_order"번호를 내가 그에서 CATEGORY_NAME 및 CATEGORY_ID을 반환하려면 동일한 "list_order"번호를 가진 다른 모든 행을 무시하십시오.
@marc_s : OP가 얻는 오류는 SQL Server가 집계 함수의 일부가 아닌 한 모든 SELECT 필드가 GROUP BY 절에 나타나야한다는 것입니다. MySQL은 이것을 요구하지 않는다. –
MSSQL에서 "Column 'jos_vm_category.category_id'는 집계 함수 또는 GROUP BY 절에 포함되어 있지 않기 때문에 선택 목록에서 유효하지 않습니다." – Andrej