구별되는 카테고리를 얻고 싶습니다. 구획화 된 열로 결과를 얻고 싶습니다.주문 별 구별
select distinct(Category)'Category' from sizes order by curdate desc
그러나이 간단한 쿼리는 오류를 생성하고 있습니다.
SELECT DISTINCT가 지정된 경우 ORDER BY 항목이 선택 목록에 나타나야합니다.
구별되는 카테고리를 얻고 싶습니다. 구획화 된 열로 결과를 얻고 싶습니다.주문 별 구별
select distinct(Category)'Category' from sizes order by curdate desc
그러나이 간단한 쿼리는 오류를 생성하고 있습니다.
SELECT DISTINCT가 지정된 경우 ORDER BY 항목이 선택 목록에 나타나야합니다.
난 당신이 GROUP BY
조항에 관해서는 SELECT DISTINCT
에 대해 같은 제약 조건이 두려워 : 즉, 당신은 필드의 사용을 할 수 없습니다 즉, Category
에 대해 서로 다른 curdate
값을 가진 여러 행이있는 경우 정렬 할 때 어떤 curdate
을 사용할 지 알 수 없기 때문에 필드 목록에 선언되어 있지 않습니다.
편집 : MIN과 MAX를 교체
SELECT Category FROM sizes GROUP BY Category ORDER BY MAX(curdate) DESC
나에게 맞는 어떤 : 뭔가를하려고합니다.
EDIT2 : MAX (curdate)는 집계 함수에서 사용 되었기 때문에 필드 목록에있을 필요조차 없습니다.
오류 메시지가 표시되면 SELECT DISTINCT
을 사용하여 wehen이 선택되지 않은 열로 주문할 수 없음 (GROUP BY
...과 같은 문제). 여기에 검색어를 변경합니다
SELECT DISTINCT category, curdate FROM sizes ORDER BY curdate DESC
편집 :를 yourt 코멘트에 회신 :
당신이 모든 범주의 마지막 날짜와 별개의 범주를 선택하려는 경우, 당신은 당신의 쿼리를 약간 수정해야합니다 . 나는 이것을 위해 두 가지 가능성을 생각할 수있다 : Costi Ciudatu처럼 MAX()를 사용하여 subselects로 어떤 미친 물건을 게시하거나 수행한다 - 첫 번째 방법이 더 나은 접근 방법이다.
을 반환하지 않습니다 seelct 절에 CURDATE를 추가하는 경우 ' –
를 반환하지 않습니다 추가하는 경우가 DISTINCT 카테고리 – oezi
모든 카테고리 목록과 각 날짜와 관련된 날짜가 표시됩니다. 과 관련된 가장 최근할지 여부에 따라
SELECT Category, MIN(curdate) FROM sizes GROUP BY Category
또는 이른 날짜 :
SELECT Category, MAX(curdate) FROM sizes GROUP BY Category
또는를 : 당신이 가장 빠른 첫 번째 또는 최신 먼저 것인지, 다음 중 하나를 수행 할 수 있어야한다 각 카테고리. 신청 소트의 일부가 아닌 경우
ORDER BY MAX(curdate)
ORDER BY MIN(curdate)
가 정확히 오류가 말하는, 그것은 별개의 목록을 주문할 수 없습니다 : 그런 다음 날짜로 ORDER
에드로 목록을 필요로하는 경우, 마지막에 다음 중 하나를 추가 선택. 이유는 선택한 고유 값 각각에 대해 여러 정렬 값이있을 수 있기 때문입니다. 데이터가 다음과 같이 보이는 경우
Category CurDate
AAA 1/1/2011
BBB 2/1/2011
AAA 3/1/2011
별개 목록의 BBB 이전이나 이후에 AA를 사용해야합니까? 뚜렷한 날짜없이 방금 주문한 경우 두 위치에서 모두 구할 수 있습니다. SQL은 고유 한 범주와 연관되어야하는 날짜를 알지 못하기 때문에 날짜별로 정렬 할 수 없습니다.
with cte as
(
select
Category,
[CurDate],
row_number() over(partition by Category order by [CurDate]) as rn
from sizes
)
select
Category
from cte
where rn = 1
order by [CurDate]
나는 seelct 절에 CURDATE가 의도 한대로, Category'와'의 독특한 조합'CURDATE는 DISTINCT 카테고리가 반환 –