Search

강찬휘 1~6번째 SQL 문제 쿼리: Join

URL
카테고리
SQL
1번
SELECT a.NAME , a.DATETIME from ANIMAL_INS a LEFT join ANIMAL_OUTS b on a.ANIMAL_ID=b.ANIMAL_ID WHERE b.ANIMAL_TYPE IS NULL ORDER BY a.DATETIME limit 3
SQL
복사
2번
SELECT b.USER_ID , b.NICKNAME , a.TOTAL_SALES from (select WRITER_ID , SUM(PRICE) AS TOTAL_SALES from USED_GOODS_BOARD where STATUS='DONE' group by WRITER_ID) a inner join USED_GOODS_USER b ON a.WRITER_ID=b.USER_ID WHERE a.TOTAL_SALES>=700000 order by a.TOTAL_SALES ASC
SQL
복사
3번
SELECT a.ANIMAL_ID,a.ANIMAL_TYPE,a.NAME from ANIMAL_INS as a join ANIMAL_OUTS as b on a.ANIMAL_ID=b.ANIMAL_ID where a.SEX_UPON_INTAKE like 'Intact%' and (b.SEX_UPON_OUTCOME like 'Spayed%' or b.SEX_UPON_OUTCOME like 'Neutered%')
SQL
복사
4번
select case when b.game_account_id is null then '결제안함' else '결제함' end as gb , count(distinct a.game_account_id ) as usercnt from users as a left join payment as b on a.game_account_id =b.game_account_id group by gb
SQL
복사
5번
select a.game_account_id , count(distinct a.game_actor_id ) as actor_cnt , avg(b.total_amt ) as avg_amount from users as a inner join( select game_account_id,sum(pay_amount ) as total_amt from payment where pay_type ='CARD' group by game_account_id ) as b on a.game_account_id =b.game_account_id where a.serverno >=2 group by a.game_account_id having actor_cnt>=2 order by avg_amount desc
SQL
복사
6번
select serverno,ROUND(AVG(diffdate)) AS avgdiffdate from( select u.serverno , DATEDIFF(p.date2, u.first_login_date) AS diffdate from (select game_account_id ,min(first_login_date) as first_login_date ,serverno from users where ip_addr like "70%" GROUP BY game_account_id,serverno) u inner join (select b.game_account_id,max(b.approved_at) as date2 from payment b group by b.game_account_id) p on u.game_account_id = p.game_account_id where p.date2 > u.first_login_date ) as kkk where diffdate >=10 GROUP BY serverno ORDER BY serverno DESC
SQL
복사