데이터베이스에 20 개 이상의 다른 영화와 동일한 첫 단어가 몇 개 있는지 계산하는 SQL 쿼리를 작성해야합니다. 23 영화 타이틀의 첫 번째 단어 '슈렉'을 포함하고 26 영화 제목 단어 'PUPPY'를 포함하는 경우SQL 동일한 첫 단어가 포함 된 값의 개수를 검색 하시겠습니까?
예를 들어, 출력이 보일 것 같은
First_Word ________Count
SHREK 23
PUPPY 26
사용
데이터베이스에 20 개 이상의 다른 영화와 동일한 첫 단어가 몇 개 있는지 계산하는 SQL 쿼리를 작성해야합니다. 23 영화 타이틀의 첫 번째 단어 '슈렉'을 포함하고 26 영화 제목 단어 'PUPPY'를 포함하는 경우SQL 동일한 첫 단어가 포함 된 값의 개수를 검색 하시겠습니까?
예를 들어, 출력이 보일 것 같은
First_Word ________Count
SHREK 23
PUPPY 26
사용
SELECT SUBSTR(FILM_TITLE, 1, INSTR(FILM_TITLE, ' ', 1) - 1),
COUNT(*)
FROM FILM_TABLE
GROUP BY SUBSTR(FILM_TITLE, 1, INSTR(FILM_TITLE, ' ', 1) - 1)
HAVING COUNT(*) >= 20;
REGEXP_SUBSTR
WITH DATA AS(
SELECT 'SHREK THE MOVIE' str FROM dual UNION ALL
SELECT 'PUPPY THE MOVIE' FROM dual UNION ALL
SELECT 'SHREK THE MOVIE' FROM dual UNION ALL
SELECT 'PUPPY THE MOVIE' FROM dual UNION ALL
SELECT 'SHREK THE MOVIE' FROM dual
)
SELECT regexp_substr(str, '\w+') sub_str, count(*) sub_str
FROM DATA
GROUP BY regexp_substr(str, '\w+')
/
SUB_STR SUB_STR
--------------- ----------
SHREK 3
PUPPY 2
SQL>
SUBSTR + INSTR
WITH DATA AS(
SELECT 'SHREK THE MOVIE' str FROM dual UNION ALL
SELECT 'PUPPY THE MOVIE' FROM dual UNION ALL
SELECT 'SHREK THE MOVIE' FROM dual UNION ALL
SELECT 'PUPPY THE MOVIE' FROM dual UNION ALL
SELECT 'SHREK THE MOVIE' FROM dual
)
SELECT SUBSTR(str, 1, INSTR(str, ' ', 1) - 1) sub_str, count(*)
FROM DATA
GROUP BY SUBSTR(str, 1, INSTR(str, ' ', 1) - 1)
/
SUB_STR COUNT(*)
--------------- ----------
SHREK 3
PUPPY 2
SQL>
한 단어 영화 이름 업데이트
을 사용하여3210
, 위의 SUBTR + INSTR
방법은 실패합니다. 문제를 해결하려면 CASE
구조를 사용해야합니다.
SQL> WITH DATA AS(
2 SELECT 'SHREK' str FROM dual UNION ALL
3 SELECT 'PUPPY THE MOVIE' FROM dual UNION ALL
4 SELECT 'SHREK THE MOVIE' FROM dual UNION ALL
5 SELECT 'PUPPY THE MOVIE' FROM dual UNION ALL
6 SELECT 'SHREK THE MOVIE' FROM dual
7 )
8 SELECT
9 CASE
10 WHEN INSTR(str, ' ', 1) = 0
11 THEN str
12 ELSE SUBSTR(str, 1, INSTR(str, ' ', 1) - 1)
13 END sub_str,
14 COUNT(*)
15 FROM DATA
16 GROUP BY
17 CASE
18 WHEN INSTR(str, ' ', 1) = 0
19 THEN str
20 ELSE SUBSTR(str, 1, INSTR(str, ' ', 1) - 1)
21 END
22/
SUB_STR COUNT(*)
--------------- ----------
SHREK 3
PUPPY 2
SQL>
만 결함이 하나의 단어 영화를 함께 업로드 할 귀찮게하지 않았다! '정규식 만이 그것을 전달 .. –
@MaheswaranRavisankar, 좋은 잡기. 답변을 업데이트했습니다. –
같은 이름의 영화는 20 개를 초과 할 수 없습니다 : P – Nitish
뭔가를 시도하는 항상 시작하는 첫 번째 장소 ... –
죄송 사람은 내가 여러 가지 방법을 시도했지만 그들 중 누구도 그렇게 일하지 나는 –