2010-01-06 5 views
1

10 개의 필드가있는 MySQL 테이블이 있습니다. 이 특정 쿼리의 경우에는 제목, 변수, 위치, 날짜 만 고려합니다. 이 네 그룹의 고유 한 값을 취하고 Title, Variables별로 그룹화하고 싶습니다. 그러나 다음 쿼리를 사용할 때GROUP 이전의 MySQL DISTINCT

Select DISTINCT 
     Title, 
     Variables, 
     Location, 
     Date 
    FROM ForecastsTest2 WHERE ... 
GROUP BY Variables, Title 
ORDER BY Title 

먼저 그룹을 구분 한 다음 다른 결과를 얻습니다. 이 주문을 전환 할 수있는 방법이 있습니까?

+0

의미가 없습니다. 'GROUP BY'와'DISTINCT'는 서로 동의어입니다. 차이점은 DISTINCT가 집계 함수를 사용할 수 없다는 것입니다. 별개의 값을 가졌고 그런 다음이 고유 한 값을 그룹화하면'title' 및'variables' 열에 대한 출력이 변경되지 않습니다. 예상되는 출력은 얼마이고 샘플 데이터가 있습니까? –

+1

@OMG 조랑말 :'DISTINCT'는 전체 행에 있습니다; 그가 원하는 GROUP BY는 2 개의 필드에만 있습니다 (2 개의 다른 필드는 집계가없는 경우 "임의"입니다). –

답변

0

나는 내가 이것을 언급의 좋은 일을하지 않았다 추측

SELECT Variables, 
     Title 
    FROM (SELECT DISTINCT Variables, 
         Title, 
         Location, 
         Date 
     FROM MyTABLE as Table1 
     ) as Table2 
     WHERE ... 
     GROUP BY Variables, Title 
     ORDER BY TITLE 

에 내 솔루션을 찾는 결국, 그러나 나는 또한 쿼리에서 HAVING COUNT(*) >= 2을 추가했다. 이 경우 개수가 아닌 모든 행을 제거한 후에 카운트가 발생합니다.

+0

그룹화 된 필드 만 사용한다면이 모든 혼란이 필요하지 않습니다. 당신이 물었던 것처럼'Location'과'Date'가 정말로 필요합니까? –