[SQL] SQL 쿼리는 최소값과 별개의 행을 선택합니다
SQLSQL 쿼리는 최소값과 별개의 행을 선택합니다
나는 SQL 문이 최소 값을 가진 행을 싶어.
이 테이블을 고려 :
id game point
1 x 5
1 z 4
2 y 6
3 x 2
3 y 5
3 z 8
어떻게 게임별로 그룹화 지점 열에서 최소 값을 가지고있는 ID를 선택합니까? 다음과 같은 :
id game point
1 z 4
2 y 5
3 x 2
해결법
-
==============================
1.사용하다:
사용하다:
SELECT tbl.* FROM TableName tbl INNER JOIN ( SELECT Id, MIN(Point) MinPoint FROM TableName GROUP BY Id ) tbl1 ON tbl1.id = tbl.id WHERE tbl1.MinPoint = tbl.Point
-
==============================
2.이 등 상위 5이기는 게임을 선택처럼 재미있는 일을 할 수 있도록하는 것과 같은 일을하는 또 다른 방법입니다
이 등 상위 5이기는 게임을 선택처럼 재미있는 일을 할 수 있도록하는 것과 같은 일을하는 또 다른 방법입니다
SELECT * FROM ( SELECT ROW_NUMBER() OVER (PARTITION BY ID ORDER BY Point) as RowNum, * FROM Table ) X WHERE RowNum = 1
이제 올바르게 가장 낮은 점수를 가진 하나의 식별 된 실제 행을 얻을 수 있습니다 당신은 "나에게 가장 작은 점수를했다 최초의 게임보기", 등 여러 기준을 사용하는 주문 기능을 수정할 수 있습니다
-
==============================
3.이 작동합니다
이 작동합니다
select * from table where (id,point) IN (select id,min(point) from table group by id);
-
==============================
4.이 경우에만 SQL 태그에 따라, 다음은 ANSI SQL 및 윈도우 기능을 사용하고 있습니다 :
이 경우에만 SQL 태그에 따라, 다음은 ANSI SQL 및 윈도우 기능을 사용하고 있습니다 :
select id, game, point from ( select id, game, point, row_number() over (partition by game order by point) as rn from games ) t where rn = 1;
-
==============================
5.켄 클라크의 대답은 내 경우에는 작동하지 않았다. 그것은 당신 중 하나에서 작동하지 않을 수 있습니다. 되지 않은 경우,이 시도 :
켄 클라크의 대답은 내 경우에는 작동하지 않았다. 그것은 당신 중 하나에서 작동하지 않을 수 있습니다. 되지 않은 경우,이 시도 :
SELECT * from table T INNER JOIN ( select id, MIN(point) MinPoint from table T group by AccountId ) NewT on T.id = NewT.id and T.point = NewT.MinPoint ORDER BY game desc
-
==============================
6.
SELECT * from room INNER JOIN ( select DISTINCT hotelNo, MIN(price) MinPrice from room Group by hotelNo ) NewT on room.hotelNo = NewT.hotelNo and room.price = NewT.MinPrice;
-
==============================
7.이 다른 방법은 SQL 서버 OUTER 절을 적용합니다. 이 방법을
이 다른 방법은 SQL 서버 OUTER 절을 적용합니다. 이 방법을
바깥 쪽은 좌 가입으로 절은 상상 할 수 있습니다 적용하지만, 장점 당신은 (여기 : 게임) 서브 쿼리에서 매개 변수로 메인 쿼리의 값을 사용할 수 있습니다.
SELECT colMinPointID FROM ( SELECT game FROM table GROUP BY game ) As rstOuter OUTER APPLY ( SELECT TOP 1 id As colMinPointID FROM table As rstInner WHERE rstInner.game = rstOuter.game ORDER BY points ) AS rstMinPoints
-
==============================
8.
SELECT DISTINCT FIRST_VALUE(ID) OVER (Partition by Game ORDER BY Point) AS ID, Game, FIRST_VALUE(Point) OVER (Partition by Game ORDER BY Point) AS Point FROM #T
-
==============================
9.시험:
시험:
select id, game, min(point) from t group by id
from https://stackoverflow.com/questions/15291506/sql-query-to-select-distinct-row-with-minimum-value by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL은 : 첫 글자를 대문자 만 [중복] (0) | 2020.05.08 |
---|---|
[SQL] 어떻게 순수한 SQL에 LINQ의 .Skip (1000) .Take (100)을 작성하려면 어떻게해야합니까? (0) | 2020.05.07 |
[SQL] IF NOT SQLite는 존재 할 방법 (0) | 2020.05.07 |
[SQL] 어떻게 현재 날짜의 소인이있는 행을 선택하려면? (0) | 2020.05.07 |
[SQL] 어떤 시점에서 데이터베이스를 사용하여 가치가있다? (0) | 2020.05.07 |