문제 푸는중~ / 아직 풀지 않는 문제의 풀이는 없습니다.
SELECT animal_id, name from animal_ins where intake_condition = "sick";
SELECT name, datetime from animal_ins order by animal_id desc;
SELECT * from animal_ins order by animal_id asc;
SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH,'%Y-%m-%d') AS DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE MONTH(DATE_OF_BIRTH) = 3 AND GENDER = 'w' AND TLNO IS NOT NULL
ORDER BY MEMBER_ID ASC;
WHERE FISH_TYPE IN (0, 1); 이 안되는 이유SELECT COUNT(*) FISH_COUNT
FROM FISH_INFO I JOIN FISH_NAME_INFO N USING (FISH_TYPE)
WHERE FISH_NAME IN ('BASS', 'SNAPPER');
SELECT USER_ID, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY PRODUCT_ID, USER_ID
HAVING COUNT(USER_ID) >= 2
ORDER BY USER_ID ASC, PRODUCT_ID DESC;
SELECT ITEM_ID, ITEM_NAME, RARITY
FROM ITEM_INFO
WHERE ITEM_ID IN (
SELECT T.ITEM_ID
FROM ITEM_INFO AS I
JOIN ITEM_TREE AS T
ON I.ITEM_ID = T.PARENT_ITEM_ID
WHERE RARITY = 'RARE')
ORDER BY 1 DESC;
풀이 1
SELECT DISTINCT ID, EMAIL, FIRST_NAME, LAST_NAME
FROM SKILLCODES S JOIN DEVELOPERS D ON S.CODE = S.CODE & D.SKILL_CODE
WHERE S.NAME IN ('Python', 'C#')
ORDER BY 1;
풀이 2
SELECT ID, EMAIL, FIRST_NAME, LAST_NAME
FROM DEVELOPERS
WHERE SKILL_CODE & (
SELECT SUM(CODE)
FROM SKILLCODES
WHERE NAME IN ('Python', 'C#'))
ORDER BY ID;
SELECT A.ID, A.GENOTYPE, B.GENOTYPE AS PARENT_GENOTYPE
FROM ECOLI_DATA AS A INNER JOIN ECOLI_DATA AS B ON A.PARENT_ID = B.ID
-- 부모의 형질에도 =(포함되어 있다.) A인 자식의 형질과 B인 부모의 형질에 &(같은 부분이 있는 것이)
WHERE B.GENOTYPE = A.GENOTYPE & B.GENOTYPE
ORDER BY A.ID;
SELECT ID, CASE
WHEN SIZE_OF_COLONY <= 100 THEN 'LOW'
WHEN 100 < SIZE_OF_COLONY AND SIZE_OF_COLONY <= 1000 THEN 'MEDIUM'
WHEN 1000 < SIZE_OF_COLONY THEN 'HIGH'
END SIZE
FROM ECOLI_DATA;
- 서브쿼리는 alias 꼭 작성해줘야 에러가 나지 않는다.
SELECT ID, CASE
WHEN RANK_COLONY <= 0.25 THEN 'CRITICAL'
WHEN RANK_COLONY <= 0.5 THEN 'HIGH'
WHEN RANK_COLONY <= 0.75 THEN 'MEDIUM'
ELSE 'LOW'
END COLONY_NAME
FROM (
SELECT ID, PERCENT_RANK() OVER (ORDER BY SIZE_OF_COLONY DESC) RANK_COLONY
FROM ECOLI_DATA
) RNAK_TABLE
ORDER BY ID;
- COUNT(*) : NULL 포함해서 셈 / COUNT(칼럼명) : NULL 빼고 셈
SELECT P.ID, COUNT(C.ID) AS CHILD_COUNT
FROM ECOLI_DATA AS P
LEFT JOIN ECOLI_DATA AS C
ON P.ID = C.PARENT_ID
GROUP BY P.ID
ORDER BY P.ID ASC;