퀴즈: SQL 쿼리
실제 작업에서 가져온 오늘의 퀴즈는 SQL 관련입니다.
데이터베이스 구조
두 개의 테이블이 있습니다(이 퀴즈를 위해 매우 단순화됨).
companies
두 개의 열 포함: id
및 name
users
두 개의 열 포함: company_id
및 is_pro
(부울) 일
write a query to find all companies that only have pro users (
is_pro=1
).
이것에 대한 나의 견해
MySQL을 사용하는 내 솔루션을 보려면 클릭하십시오.
SELECT
c.name as company
FROM
users u
JOIN companies c ON
c.id = u.company_id
GROUP BY
c.id
HAVING
SUM(IF(is_pro, 0, 1)) = 0;
IF(is_pro, 0, 1)
는 내가 전문가인 사용자에게 0점을 준다는 것을 의미합니다(직관에 반하지만 참아주세요!). 모든 유저가 프로라면 점수의 합은 0이겠죠? 그것이 HAVING IF(is_pro, 0, 1)) = 0
가 하는 일입니다.당신은 그것을 가지고 있습니다!
어떻게 했을까요?
📝 편집
SUM
에서 COUNT
까지 사용하여 지적한 바와 같이 해키이므로 COUNT
및 CASE
를 사용하는 것이 좋습니다.SELECT
c.name as company,
COUNT(
CASE WHEN can_use_app = 1 THEN 'x'
END
) isPro,
COUNT(
CASE WHEN can_use_app = 0 OR can_use_app IS NULL THEN 'x'
END
) isNotPro
FROM
users u
JOIN companies c ON
c.id = u.company_id
GROUP BY
c.id
HAVING
isPro > 0 and isNotPro = 0;
즐거운 코딩하세요! ⌨️
Reference
이 문제에 관하여(퀴즈: SQL 쿼리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/joolsmcfly/quiz-sql-query-3l3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)