강사님 exists와 in은 다중행 서브쿼리 작성시에 쓸수 있는 연산자라고 하셨는데, 사실 무슨 차이인지 잘 모르겠습니다.... 서브쿼리에서 존재하느냐는 exists고 in도 어떻게 보면 (존재하는)조건에 맞는 레코드를 가져오는거라서 말만 그렇지 솔직히 잘 구별하기 힘든데, 그냥 업무상에서 구분없이 써도 되나요...?
Select Case When mod(id,2) != 0 then id+1 When mod(id,2) = 0 then id-1 When id = max(id) then id-1 END as id , student From Seat Order by id 위와 같이 했는데 | id | student | | -- | ------- | | 2 | Abbot | 라는 결과를 내놓네요.
안녕하세요 M2 mac 환경입니다. mysql 및 mysql banch 설치하였고 mysql banch에서 실행 버튼만 누르면 자동으로 프로그램이 종료됩니다 ㅠ mysql 접속이 안되서 그런건가 하고 확인해보니까 mac시스템 설정에서 mysql에 들어가서 start mysql server을 클리하면 계속 start stop (초록 빨강)으로 깜빡거리는 현상도 있음을 발견햇어요 ㅠ 열심히 구글링했는데 도저히 해결책을 찾지 못해 글남겨요 ㅠ 8.0.32 arm64 설치했고요 ㅠ
안녕하세요 해커랭크의 Weather Observation Station 11 문제 관련 질문드리려고 합니다. 시작과 끝이 모음이 아닌 city 이름만 출력하는 문제인데요 SELECT DISTINCT CITY FROM STATION WHERE CITY REGEXP '^[^aeiou].*[^aeiou]$' [ ] 안에 ^ 표시가 포함하지 않는다는 조건이라 해당 코드로 작성했더니 정답이 아니라고 떠서 regexr 페이지에서 테스트 해봤는데 여기서는 제대로 작동하더라구요! SELECT DISTINCT CITY FROM STATION WHERE CITY NOT REGEXP '^[aeiou].*[aeiou]$' 혹시나 해서 [ ] 안 ^ 대신 REGEXP 앞에 NOT을 써보았는데 이 코드는 제대로 작동했습니다. ^조건과 NOT이 차이가 있나요??
4번 bst 문제와 관련해서 아래와 같이 쿼리 했는데 틀리네요 ㅠㅠ 이유를 모르겠습니다 SELECT DISTINCT BST.N, CASE WHEN BST.P IS NULL THEN 'Root' WHEN B2.N IS NULL THEN 'Leaf' ELSE 'Inner' END FROM BST LEFT JOIN BST B2 ON BST.N = B2.P ORDER BY BST.N
안녕하세요! 해커랭크 Top Earners 문제에 관해 질문드리겠습니다. where 절에 서브쿼리를 사용할 때, select salary*months as earnings, count(*) from employee where salary*months = (select max(salary*months) from employee) 위의 코드를 작성했을때 group by 없이는 집계함수를 사용할 수 없다는 오류가 뜨는데, select count(*) from employee where salary*months = (select max(salary*months) from employee) select 에 count만 출력했을 때는 문제 없이 코드가 실행됩니다! count 단독으로 출력할 때는 전체 갯수만 파악하지만 salary*months 까지 같이 출력할 때는 해당 salary*months에 맞게 count를 해야해서 집계함수를 사용해야 하는 걸까요? 어짜피 max값만 가져와서 출력하는데도 group by를 꼭 사용해야 하는걸까요?
SELECT CASE WHEN A = B AND B = C THEN 'Equilateral' WHEN A + B <= C OR A + C <= B OR B + C <= A THEN 'Not A Triangle' WHEN A = B OR B = C OR A = C THEN 'Isosceles' ELSE 'Scalene' END FROM Triangles CASE문이 저렇게 Answer에 같이 떠서 안되는거같은데 어떻게 해야할까요?
Select Distinct s.hackers, h.name , s.final From ( Select hackers, sum(maxscore) over (partition by hackers) as final From ( Select Distinct hacker_id as hackers, challenge_id, max(score) over (partition by hacker_id, challenge_id) as maxscore From Submissions ) sub ) s Inner join Hackers h on h.hacker_id = s.hackers Where s.final > 0 Order by s.final desc
안녕하세요! 강의를 듣다가 궁금한것이 생겨서 문의 드립니다. -- 부서명 SALES와 RESEARCH 소속 직원별로 과거부터 현재까지 모든 급여를 취합한 평균 급여 select b.empno, max(b.ename) as ename, avg(c.sal) as avg_sal --, count(*) as cnt from hr.dept a join hr.emp b on a.deptno = b.deptno join hr.emp_salary_hist c on b.empno = c.empno where a.dname in('SALES', 'RESEARCH') group by b.empno order by 1; 여기서 왜 max(b.ename) 이라고 해야하는지 잘 이해가 안가서 문의 드립니다..! 감사합니다.
안녕하세요. 조인관련 실습을 하다가 궁금한점이 있어 문의드립니다. -- 직원명 SMITH의 과거 소속 부서 정보를 구할 것. 예제를 실행하려다 보니 저의 경우 일단 가장먼저 보이는 emp와 dept 테이블을 join하고 (JOIN순서는 상관 없다고 하셔서..) 나머지 테이블인 emp_dept_hist 테이블을 연결해주려 하다보니 아래와 같은 join 조건을 쓰게 되고 당연히 결과가 다르게 나오더라구요. 결과를 알고 보니 emp와 dept 테이블을 연결 안해야 하는게? 맞는거 같긴한데.. 제가 여러 테이블을 조인할때 어느 부분을 놓치고 있는 걸까요? ㅜ (ANSI가 아직 익숙하지 않아 일단 기존 방식으로 쿼리를 작성했습니다..) SELECT a.ename , c.fromdate , c.todate , b.deptno , b.dname FROM emp a, dept b, emp_dept_hist c WHERE a.deptno = b.deptno AND a.empno = c.empno AND b.deptno = c.deptno AND a.ename = 'SMITH' ;
안녕하세요 선생님. 강의 항상 잘 듣고 있습니다. PK인 컬럼에 대해 DISTINCT를 적용하는 것에 대한 의문이 들어 질문을 남깁니다. PK는 해당 테이블의 가장 고유한 값이기에 중복되지 않는 고유한 값을 가지고 있는 것으로 알고 있는데, GROUP BY에서 COUNT를 적용하는 과정에서 (PK인 컬럼에 대해) DISTINCT를 적용하여 세는 것이 가장 일반적인 방법이라고 말씀하신 이유가 궁금합니다. PK가 아닌 다른 컬럼에 대한 적용을 염두한 말씀이신가요?(해당 사례는 CUSTOMERS 테이블에 대해 CustomerID를 DISTINCT로 적용하여 COUNT하는 상황이었습니다.) 아니면 다른 이유가 있는 것인지 궁금합니다. 아래의 세 집계함수에 어떤 차이가 있는 것인지 궁금합니다. COUNT(DISTINCT PK) COUNT(PK) COUNT(*) 감사합니다.