[SQL] 열에 대해 최대 값을 갖는 행을 페치
SQL열에 대해 최대 값을 갖는 행을 페치
표:
UserId, Value, Date.
나는 각각의 사용자 아이디에 대한 최대 (일)에 대한 사용자 아이디, 값 싶어. 즉, 최신 날짜가 각 사용자 아이디에 대한 값입니다. 단순히 SQL이 할 수있는 방법이 있나요? (바람직하게는 오라클)
업데이트 : 어떤 모호함에 대한 사과 : 나는 모든 사용자를 얻을 필요가있다. 그러나 사용자가 최신 날짜가 어디에 각 사용자 ID에 대한 만 행 것이다.
해결법
-
==============================
1.이것은 my_date 열 값 해당 아이디에 대한 my_date의 최대 값과 동일하게되는 모든 행을 검색한다. 이것은 최대 날짜가 여러 행에있는 사용자 ID에 대해 여러 행을 검색 할 수 있습니다.
이것은 my_date 열 값 해당 아이디에 대한 my_date의 최대 값과 동일하게되는 모든 행을 검색한다. 이것은 최대 날짜가 여러 행에있는 사용자 ID에 대해 여러 행을 검색 할 수 있습니다.
select userid, my_date, ... from ( select userid, my_date, ... max(my_date) over (partition by userid) max_my_date from users ) where my_date = max_my_date
"분석 기능 바위"
편집 : 최초의 코멘트에 관해서 ...
"분석 쿼리와 사용 패배를 분석 쿼리의 목적을 자기 조인"
더 없다이 코드에서 자체 조인. 매우 다른 문제, 완전히 표준 관행 - 분석적 기능을 포함하는 인라인 뷰의 결과에 배치 술어 대신있다.
"오라클의 기본 창은 파티션의 첫 번째 행에서 현재 하나입니다"
윈도 절은 절에 의해 순서의 존재에만 적용됩니다. 절에 의해 어떤 순서로, 어떤 윈도 절을 기본적으로 적용되지 않으며 아무도 명시 적으로 지정 될 수 없다.
코드는 작동합니다.
-
==============================
2.나는 많은 사람들이 하위 쿼리 또는이 작업을 수행하는 다른 공급 업체 특정 기능을 사용하여 볼 수 있지만 나는 종종 다음과 같은 방법으로 서브 쿼리없이 쿼리 이런 종류의 작업을 수행. 이 RDBMS의 모든 브랜드에서 작동해야 있도록 일반, 표준 SQL을 사용합니다.
나는 많은 사람들이 하위 쿼리 또는이 작업을 수행하는 다른 공급 업체 특정 기능을 사용하여 볼 수 있지만 나는 종종 다음과 같은 방법으로 서브 쿼리없이 쿼리 이런 종류의 작업을 수행. 이 RDBMS의 모든 브랜드에서 작동해야 있도록 일반, 표준 SQL을 사용합니다.
SELECT t1.* FROM mytable t1 LEFT OUTER JOIN mytable t2 ON (t1.UserId = t2.UserId AND t1."Date" < t2."Date") WHERE t2.UserId IS NULL;
즉 : 다른 행이 동일한 사용자 ID와 큰 날짜와 함께 존재하지 않는 경우 T1에서 행을 가져옵니다.
(그것이 SQL 예약어이기 때문에 구분 기호의 식별자 "날짜"를 넣어.)
경우 T1. "날짜"= T2. "날짜"배로 나타날 경우. 일반적으로 테이블 auto_inc (서열) 키, 예를 들면있다 신분증. 다음 사용할 수있는 두 배로 방지하려면 :
SELECT t1.* FROM mytable t1 LEFT OUTER JOIN mytable t2 ON t1.UserId = t2.UserId AND ((t1."Date" < t2."Date") OR (t1."Date" = t2."Date" AND t1.id < t2.id)) WHERE t2.UserId IS NULL;
@Farhan에서 의견을 다시 :
여기에 대한 자세한 설명입니다 :
외부는 T2와 T1 가입 시도를 가입 할 수 있습니다. 기본적으로 T1의 모든 결과가 반환되고, T2의 일치가있는 경우, 그것은 또한 반환됩니다. T1의 주어진 행에 대해 (T2)에 일치하는 경우, 다음 쿼리는 여전히 T1의 행을 반환하고, T2의 모든 열을위한 자리로 NULL을 사용합니다. 즉 일반적으로 작업을 조인 얼마나 외부입니다.
이 쿼리의 트릭은이 T2는 동일한 사용자 ID와 큰 날짜와 일치해야 함을의 일치 조건은 가입 설계하는 것입니다. 행이 더 큰 일, 즉 사용자 ID에 대한 가장 큰 일이 될 수 없습니다 대조 비교있어 T1에 다음 행이 T2에 존재하는 경우 아이디어는 것. 그러나 일치가없는 경우 - 더 행 T1의 행보다 더 큰 날짜와 T2에 존재하지 않는 경우 즉, - 우리는 T1의 행이 주어진 사용자 ID에 대한 가장 큰 날짜 행 것을 알고있다.
도에 지정된 열 조인 조건 - (일치가 없을 때) 이러한 경우, T2의 열은 NULL이됩니다. 그럼 왜 우리가 사용하는 WHERE t2.UserId IS NULL, 어떤 행이 주어진 사용자 ID에 대한 더 큰 날짜가 발견 된 경우에 우린 검색 때문이다.
-
==============================
3.
SELECT userid, MAX(value) KEEP (DENSE_RANK FIRST ORDER BY date DESC) FROM table GROUP BY userid
-
==============================
4.나는 정확한 열 이름을 모르겠지만, 이런 식으로 뭔가 될 것이다 :
나는 정확한 열 이름을 모르겠지만, 이런 식으로 뭔가 될 것이다 :
select userid, value from users u1 where date = (select max(date) from users u2 where u1.userid = u2.userid)
-
==============================
5.직장에서 존재하지, 내가 손에 오라클이없는,하지만 난 적어도 거의 좋은하지 않습니다 상관 하위 쿼리를 사용하는 옵션을 피해야한다 오라클은 여러 열이 IN 절에 일치 할 수 있는지 리콜에 보인다 생각.
직장에서 존재하지, 내가 손에 오라클이없는,하지만 난 적어도 거의 좋은하지 않습니다 상관 하위 쿼리를 사용하는 옵션을 피해야한다 오라클은 여러 열이 IN 절에 일치 할 수 있는지 리콜에 보인다 생각.
이런 식으로 뭔가가, 아마 (열 목록이 괄호에 여부를해야하는지 기억이 안나요) :
SELECT * FROM MyTable WHERE (User, Date) IN ( SELECT User, MAX(Date) FROM MyTable GROUP BY User)
편집 : 그냥 진짜 그것을 시도 :
SQL> create table MyTable (usr char(1), dt date); SQL> insert into mytable values ('A','01-JAN-2009'); SQL> insert into mytable values ('B','01-JAN-2009'); SQL> insert into mytable values ('A', '31-DEC-2008'); SQL> insert into mytable values ('B', '31-DEC-2008'); SQL> select usr, dt from mytable 2 where (usr, dt) in 3 ( select usr, max(dt) from mytable group by usr) 4 / U DT - --------- A 01-JAN-09 B 01-JAN-09
작동 그래서, 새로운-fangly 물건 중 일부는 다른 곳에서 언급 있지만 더 확대됨에 될 수있다.
-
==============================
6.난 당신이 오라클을 요청 알고 있지만, SQL 2005 년에 우리는 지금 이것을 사용 :
난 당신이 오라클을 요청 알고 있지만, SQL 2005 년에 우리는 지금 이것을 사용 :
-- Single Value ;WITH ByDate AS ( SELECT UserId, Value, ROW_NUMBER() OVER (PARTITION BY UserId ORDER BY Date DESC) RowNum FROM UserDates ) SELECT UserId, Value FROM ByDate WHERE RowNum = 1 -- Multiple values where dates match ;WITH ByDate AS ( SELECT UserId, Value, RANK() OVER (PARTITION BY UserId ORDER BY Date DESC) Rnk FROM UserDates ) SELECT UserId, Value FROM ByDate WHERE Rnk = 1
-
==============================
7.나는 그것을 테스트하기 위해 오라클이 없지만 가장 효율적인 솔루션을 분석 쿼리를 사용하는 것입니다. 이 모양은 다음과 같습니다
나는 그것을 테스트하기 위해 오라클이 없지만 가장 효율적인 솔루션을 분석 쿼리를 사용하는 것입니다. 이 모양은 다음과 같습니다
SELECT DISTINCT UserId , MaxValue FROM ( SELECT UserId , FIRST (Value) Over ( PARTITION BY UserId ORDER BY Date DESC ) MaxValue FROM SomeTable )
난 당신이 외부 쿼리 없애 및 내부에 뚜렷한 넣을 수 있습니다 의심,하지만 난 모르겠어요. 그 때까지 나는이 한 일을 알고있다.
당신이 분석 쿼리에 대해 배우고 싶은 경우에, 나는 http://www.orafaq.com/node/55 및 http://www.akadia.com/services/ora_analytic_functions.html 읽는 게 좋을 것. 여기에 간단한 요약입니다.
후드 분석 쿼리는 순차적으로이를 처리, 전체 데이터 집합을 정렬 할 수 있습니다. 당신이 그것을 처리로 일부 창에서 각 행의 외모에 대해 다음 특정 기준에 따라 데이터 집합을 분할하고, (현재 행에 파티션의 첫 번째 값 기본값을 - 그 기본은 가장 효율적인 또한)와를 사용하여 값을 계산할 수 있습니다 분석 함수 번호 (목록은 골재의 기능과 매우 유사하다).
여기이 경우 내부 쿼리가하는 일입니다. 전체 데이터 세트는 사용자 아이디 다음 날짜 DESC로 정렬됩니다. 그런 다음 한 번에 처리합니다. 각 행에 대해 당신은 사용자 ID와 (최대 날짜의 날짜가 분류되어 있기 때문에 DESC)이 사용자 아이디에 대해 볼 수있는 첫 번째 날짜가 돌아갑니다. 이렇게하면 중복 행 답변을 제공합니다. 그런 다음 외부 DISTINCT 과즙을 복제합니다.
이 분석 쿼리 특히 멋진 예가 아니다. 훨씬 더 큰 승리를 위해 금융 영수증 테이블을 복용 고려하고 각 사용자와 영수증, 그들이 무엇을 지불의 실행중인 총 계산. 분석 쿼리를 효율적으로 그것을 해결. 다른 솔루션은 덜 효율적이다. 어떤 사람들은 2003 년 SQL 표준의 일부 이유입니다. (불행하게도 포스트 그레스가 아직 없습니다. 유감스럽게도 ...)
-
==============================
8.조항은 모두 간단하고 최선가 필요하지 않을까요?
조항은 모두 간단하고 최선가 필요하지 않을까요?
select userid, my_date, ... from users qualify rank() over (partition by userid order by my_date desc) = 1
상황은 여기 테라 데이타이와 17S이 실행 괜찮은 크기의 테스트에서 '인라인 뷰'/ 드리지 솔루션 # 1 버전 및 23S의 자격.
-
==============================
9.오라클 12C의 +, 당신은 서브 쿼리없이 매우 간결이를 달성하기 위해 분석 함수 순위와 함께 상위 N 쿼리를 사용할 수 있습니다 :
오라클 12C의 +, 당신은 서브 쿼리없이 매우 간결이를 달성하기 위해 분석 함수 순위와 함께 상위 N 쿼리를 사용할 수 있습니다 :
select * from your_table order by rank() over (partition by user_id order by my_date desc) fetch first 1 row with ties;
사용자 당 최대 my_date와 위의 반환 모든 행.
당신이 최대 날짜가 하나 개의 행을 원한다면, ROW_NUMBER와 순위를 대체 :
select * from your_table order by row_number() over (partition by user_id order by my_date desc) fetch first 1 row with ties;
-
==============================
10.사용 ROW_NUMBER ()는 고유 한 사용자 아이디에 대한 각 각 사용자 아이디에 대한 첫 번째 행 후 필터 (즉, ROW_NUMBER = 1) 날짜 내림차순 순위에 할당한다.
사용 ROW_NUMBER ()는 고유 한 사용자 아이디에 대한 각 각 사용자 아이디에 대한 첫 번째 행 후 필터 (즉, ROW_NUMBER = 1) 날짜 내림차순 순위에 할당한다.
SELECT UserId, Value, Date FROM (SELECT UserId, Value, Date, ROW_NUMBER() OVER (PARTITION BY UserId ORDER BY Date DESC) rn FROM users) u WHERE rn = 1;
-
==============================
11.PostgreSQL을 8.4으로 이상이 사용할 수 있습니다 :
PostgreSQL을 8.4으로 이상이 사용할 수 있습니다 :
select user_id, user_value_1, user_value_2 from (select user_id, user_value_1, user_value_2, row_number() over (partition by user_id order by user_date desc) from users) as r where r.row_number=1
-
==============================
12.난 당신이 이전 쿼리에이 변형을해야한다고 생각 :
난 당신이 이전 쿼리에이 변형을해야한다고 생각 :
SELECT UserId, Value FROM Users U1 WHERE Date = ( SELECT MAX(Date) FROM Users where UserId = U1.UserId)
-
==============================
13.
Select UserID, Value, Date From Table, ( Select UserID, Max(Date) as MDate From Table Group by UserID ) as subQuery Where Table.UserID = subQuery.UserID and Table.Date = subQuery.mDate
-
==============================
14.그냥 직장에서 "라이브"예를 써야했다 :)
그냥 직장에서 "라이브"예를 써야했다 :)
이 사람은 같은 날짜에 사용자 아이디에 대한 여러 값을 지원합니다.
열 : 사용자 아이디, 값, 날짜
SELECT DISTINCT UserId, MAX(Date) OVER (PARTITION BY UserId ORDER BY Date DESC), MAX(Values) OVER (PARTITION BY UserId ORDER BY Date DESC) FROM ( SELECT UserId, Date, SUM(Value) As Values FROM <<table_name>> GROUP BY UserId, Date )
당신은 FIRST_VALUE 대신 MAX를 사용하여 설명 할 계획을 찾아 볼 수 있습니다. 나는 그것을 함께 플레이하는 시간이 없었다.
큰 테이블을 통해 검색하는 경우 쿼리에 FULL 힌트를 사용하는 경우 물론, 더 나은 아마.
-
==============================
15.
select VALUE from TABLE1 where TIME = (select max(TIME) from TABLE1 where DATE= (select max(DATE) from TABLE1 where CRITERIA=CRITERIA))
-
==============================
16.나는 이런 식으로 뭔가를 생각합니다. (구문의 실수에 대한 용서, 나는이 시점에서 HQL을 사용하는 데 사용 해요!)
나는 이런 식으로 뭔가를 생각합니다. (구문의 실수에 대한 용서, 나는이 시점에서 HQL을 사용하는 데 사용 해요!)
편집 : 또한 질문을 오해! 쿼리를 수정 ...
SELECT UserId, Value FROM Users AS user WHERE Date = ( SELECT MAX(Date) FROM Users AS maxtest WHERE maxtest.UserId = user.UserId )
-
==============================
17.(T-SQL) 첫 번째는 사용자와 사용자의 maxdate 모두를 얻을. maxdates에 연결된 사용자를 위해 해당 값을 찾기 위해 테이블에 가입하세요.
(T-SQL) 첫 번째는 사용자와 사용자의 maxdate 모두를 얻을. maxdates에 연결된 사용자를 위해 해당 값을 찾기 위해 테이블에 가입하세요.
create table users (userid int , value int , date datetime) insert into users values (1, 1, '20010101') insert into users values (1, 2, '20020101') insert into users values (2, 1, '20010101') insert into users values (2, 3, '20030101') select T1.userid, T1.value, T1.date from users T1, (select max(date) as maxdate, userid from users group by userid) T2 where T1.userid= T2.userid and T1.date = T2.maxdate
결과 :
userid value date ----------- ----------- -------------------------- 2 3 2003-01-01 00:00:00.000 1 2 2002-01-01 00:00:00.000
-
==============================
18.여기에 대한 대답은 오라클이다. 여기에 모든 SQL에서 좀 더 정교한 대답입니다 :
여기에 대한 대답은 오라클이다. 여기에 모든 SQL에서 좀 더 정교한 대답입니다 :
누가 최고의 전반적인 숙제 결과 (숙제 포인트의 최대 합계)가?
SELECT FIRST, LAST, SUM(POINTS) AS TOTAL FROM STUDENTS S, RESULTS R WHERE S.SID = R.SID AND R.CAT = 'H' GROUP BY S.SID, FIRST, LAST HAVING SUM(POINTS) >= ALL (SELECT SUM (POINTS) FROM RESULTS WHERE CAT = 'H' GROUP BY SID)
그리고 시간 기압 갖고 있지 않은 약간의 설명이 필요 더 어려운 예 :
2008 년에 가장 많이 빌려 2008 년 가장 인기있는 책 (ISBN 및 제목), 즉를 제공합니다.
SELECT X.ISBN, X.title, X.loans FROM (SELECT Book.ISBN, Book.title, count(Loan.dateTimeOut) AS loans FROM CatalogEntry Book LEFT JOIN BookOnShelf Copy ON Book.bookId = Copy.bookId LEFT JOIN (SELECT * FROM Loan WHERE YEAR(Loan.dateTimeOut) = 2008) Loan ON Copy.copyId = Loan.copyId GROUP BY Book.title) X HAVING loans >= ALL (SELECT count(Loan.dateTimeOut) AS loans FROM CatalogEntry Book LEFT JOIN BookOnShelf Copy ON Book.bookId = Copy.bookId LEFT JOIN (SELECT * FROM Loan WHERE YEAR(Loan.dateTimeOut) = 2008) Loan ON Copy.copyId = Loan.copyId GROUP BY Book.title);
희망이 (사람을)하는 데 도움이 .. :)
문안 인사, 거스
-
==============================
19.날짜를 가정하면 지정된 사용자 ID에 대해 고유합니다, 여기에 몇 가지 TSQL입니다 :
날짜를 가정하면 지정된 사용자 ID에 대해 고유합니다, 여기에 몇 가지 TSQL입니다 :
SELECT UserTest.UserID, UserTest.Value FROM UserTest INNER JOIN ( SELECT UserID, MAX(Date) MaxDate FROM UserTest GROUP BY UserID ) Dates ON UserTest.UserID = Dates.UserID AND UserTest.Date = Dates.MaxDate
-
==============================
20.나는 아주 늦게 파티에있어하지만 다음과 같은 해킹 상관 하위 쿼리 및 분석 모두 기능을 능가하지만, 하나 개의 제한이됩니다 값을 문자열로 변환해야합니다. 그래서 날짜, 숫자 등의 문자열을 사용할 수 있습니다. 코드는 잘 보이지 않지만 실행 프로파일은 중대하다.
나는 아주 늦게 파티에있어하지만 다음과 같은 해킹 상관 하위 쿼리 및 분석 모두 기능을 능가하지만, 하나 개의 제한이됩니다 값을 문자열로 변환해야합니다. 그래서 날짜, 숫자 등의 문자열을 사용할 수 있습니다. 코드는 잘 보이지 않지만 실행 프로파일은 중대하다.
select userid, to_number(substr(max(to_char(date,'yyyymmdd') || to_char(value)), 9)) as value, max(date) as date from users group by userid
이 코드는 잘 작동하는 이유는 한 번만 테이블을 스캔 할 필요가 있다는 것입니다. 그것은 어떤 인덱스를 필요로하지 않으며 가장 중요한 것은 대부분의 분석 기능을 수행 테이블을 정렬 할 필요가 없습니다. 인덱스는 단일 사용자 ID에 대한 결과를 필터링해야하는 경우 비록 도움이 될 것입니다.
-
==============================
21.
select userid, value, date from thetable t1 , ( select t2.userid, max(t2.date) date2 from thetable t2 group by t2.userid ) t3 where t3.userid t1.userid and t3.date2 = t1.date
이럴이 작동합니다. HTH
-
==============================
22.나는이 일을해야한다고 생각?
나는이 일을해야한다고 생각?
Select T1.UserId, (Select Top 1 T2.Value From Table T2 Where T2.UserId = T1.UserId Order By Date Desc) As 'Value' From Table T1 Group By T1.UserId Order By T1.UserId
-
==============================
23.우선 상단의 대답은 다음과 같은 질문을 오해 시도, 여기에 올바른 결과와 완벽한 예입니다 :
우선 상단의 대답은 다음과 같은 질문을 오해 시도, 여기에 올바른 결과와 완벽한 예입니다 :
CREATE TABLE table_name (id int, the_value varchar(2), the_date datetime); INSERT INTO table_name (id,the_value,the_date) VALUES(1 ,'a','1/1/2000'); INSERT INTO table_name (id,the_value,the_date) VALUES(1 ,'b','2/2/2002'); INSERT INTO table_name (id,the_value,the_date) VALUES(2 ,'c','1/1/2000'); INSERT INTO table_name (id,the_value,the_date) VALUES(2 ,'d','3/3/2003'); INSERT INTO table_name (id,the_value,the_date) VALUES(2 ,'e','3/3/2003');
--
select id, the_value from table_name u1 where the_date = (select max(the_date) from table_name u2 where u1.id = u2.id)
--
id the_value ----------- --------- 2 d 2 e 1 b (3 row(s) affected)
-
==============================
24.이것은 또한 중복 (각 USER_ID에 대해 하나 개의 행을 리턴)의 처리됩니다 :
이것은 또한 중복 (각 USER_ID에 대해 하나 개의 행을 리턴)의 처리됩니다 :
SELECT * FROM ( SELECT u.*, FIRST_VALUE(u.rowid) OVER(PARTITION BY u.user_id ORDER BY u.date DESC) AS last_rowid FROM users u ) u2 WHERE u2.rowid = u2.last_rowid
-
==============================
25.그냥이 테스트는 로깅 테이블에 작동하는 것 같다
그냥이 테스트는 로깅 테이블에 작동하는 것 같다
select ColumnNames, max(DateColumn) from log group by ColumnNames order by 1 desc
-
==============================
26.이것은 단순하게해야한다 :
이것은 단순하게해야한다 :
SELECT UserId, Value FROM Users u WHERE Date = (SELECT MAX(Date) FROM Users WHERE UserID = u.UserID)
-
==============================
27.파티션 KEEP, DENSE_RANK의 개념이없는 MySQL을위한 솔루션.
파티션 KEEP, DENSE_RANK의 개념이없는 MySQL을위한 솔루션.
select userid, my_date, ... from ( select @sno:= case when @pid<>userid then 0 else @sno+1 end as serialnumber, @pid:=userid, my_Date, ... from users order by userid, my_date ) a where a.serialnumber=0
참조 : http://benincampus.blogspot.com/2013/08/select-rows-which-have-maxmin-value-in.html
-
==============================
28.당신이 포스트 그레스를 사용하는 경우처럼 array_agg 사용할 수 있습니다
당신이 포스트 그레스를 사용하는 경우처럼 array_agg 사용할 수 있습니다
SELECT userid,MAX(adate),(array_agg(value ORDER BY adate DESC))[1] as value FROM YOURTABLE GROUP BY userid
나는 오라클에 익숙하지 않다. 이것은 내가 생각 해낸 것입니다
SELECT userid, MAX(adate), SUBSTR( (LISTAGG(value, ',') WITHIN GROUP (ORDER BY adate DESC)), 0, INSTR((LISTAGG(value, ',') WITHIN GROUP (ORDER BY adate DESC)), ',')-1 ) as value FROM YOURTABLE GROUP BY userid
두 쿼리는 허용 답변으로 동일한 결과를 반환합니다. SQLFiddles를 참조하십시오 :
-
==============================
29.(사용자 ID, 날짜) 고유 경우, 즉 어떤 날짜는 동일한 사용자에 대해 두 번 나타납니다 :
(사용자 ID, 날짜) 고유 경우, 즉 어떤 날짜는 동일한 사용자에 대해 두 번 나타납니다 :
select TheTable.UserID, TheTable.Value from TheTable inner join (select UserID, max([Date]) MaxDate from TheTable group by UserID) UserMaxDate on TheTable.UserID = UserMaxDate.UserID TheTable.[Date] = UserMaxDate.MaxDate;
-
==============================
30.
select UserId,max(Date) over (partition by UserId) value from users;
from https://stackoverflow.com/questions/121387/fetch-the-row-which-has-the-max-value-for-a-column by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 주입은 무엇인가? [복제] (0) | 2020.03.05 |
---|---|
[SQL] 동적 열 수로 MySQL의 피봇 행 (0) | 2020.03.05 |
[SQL] 내가 항목 X에 액세스 할 수 있도록 어떻게 문자열을 분할합니까? (0) | 2020.03.05 |
[SQL] MySQL의 계층 적 재귀 쿼리 만드는 방법 (0) | 2020.03.04 |
[SQL] 는 SQL IN 절을 매개 변수화 (0) | 2020.03.04 |