안녕하세요. 강의 듣고 실습문제를 따로 풀어보고 있는데요 1997년 이후에 단 한건도 주문하지 않은 고객 정보에 대해 저는 아래와 같이 인라인뷰를 안쓰고 바로 left 조인으로 했는데요. 이렇게 풀이를 해도 상관없을까요? 실행결과 자체는 같은데 혹시 먼가 빠뜨리거나 잘못생각하고 있는게 있나 궁금해서 문의드립니다. 풀이 SELECT * FROM NW.customers A LEFT JOIN NW.orders B ON A.customer_id = B.customer_id AND B.order_date >= TO_DATE ('19970101', 'YYYYMMDD') WHERE B.customer_id IS NULL 정답 select * from nw.customers a left join ( select customer_id from nw.orders where order_date >= to_date ('19970101', 'yyyymmdd') group by customer_id ) b on a.customer_id = b.customer_id where b.customer_id is null ;
2번 문제 SELECT COUNT(POPULATION) FROM CITY WHERE DISTRICT = 'California'; SUM 이 아닌 COUNT 를 쓰게 되면 뭘 의미하게 되는 걸까요? 저는 왜 SUM 과 COUNT 를 혼동할까요? 3번 문제 왜 COUNT(ID) 여야 하는건가요? COUNT(DISTRICT)도 답이 될까요? 5번 문제 문제에서 조건이 주어졌을 때 SELECT 절에 써야 할 지 WHERE절에 써야 할 지 헷갈립니다. MAX, ROUND 등은 SELECT 절에 주고 또 어떤 조건들은 WHERE 절에 주는데 기준이 뭘까요? 저는 SELECT POPULATION FROM CITY WHERE MAX(POPULATUIN) - MIN(POPULATUIN); 이렇게 적어서 틀렸습니다.
공부하다가 의문이 생겼는데요, 낙관적 락 - 충돌 잦으면 락 획득 재시도 로직 때문에 성능 안좋음 비관적 락 - 충돌 잦으면 낙관적 락보다 성능좋음. 분산 락 - 스케일 아웃된 DB 환경에서도 사용 가능 - Redis 라이브러리마다 다른데 Lettuce는 스핀락으로 구현되서 재시도 많으면 불리 Redisson은 pub-sub 기반이라 재시도 많으면 유리 정확하진 않지만 이렇게 알고있습니다. 질문은 1. 잘못 알고 있나요? 2. 제가 공부한게 맞다면, 무조건 비관적 락, 낙관적 락 말고 분산락 + Redis(Lettuce/Redisson) 쓰는게 좋은건가요?
안녕하세요, GROUP BY 함수 관련 질문입니다. GROUP BY SupplierID GROUP BY SupplierID 를 했을 때 SupplierID는 자동으로 중복이 제거가 된 뒤 평균가격이 반환되는 건가요? GROUP BY SupplierID, CategoryID 는 무슨 뜻인지 모르겠어요 SupplierID별 평균가격과 CategoryID별 평균 가격 이렇게 2개의 결과가 나와야 하는 건가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 위와 같이 테스트를 구현하고 테스트 실행 시 Insert 쿼리가 나갑니다. 그런데 예외가 발생했기 때문에 롤백이 되어서 또는 테스트의 트랜잭션 디폴트 값이 Rollback이라서 Insert 쿼리가 나가지 않아야 하는 것 아닌가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] gradlew build를 하면 이런 에러가 발생합니다. 인텔리제이 설정에서 build Tools > Run tests using 항목을 IntelliJ IDEA로 변경을 해보았으나 에러는 동일하게 발생했지만 해결책을 모르겠습니다.
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 제가 한 게시판에서 이런 글을 읽었습니다. "요즘에는 논리적인 연관관계는 만들지만 db에서는 만들지 않고 조인 연산을 거의 안 하고 여러 번 쿼리해서 애플리케이션에서 조합합니다." 이유로는 연관관계를 맺으면 테이블 설계에 있어 유연성이 떨어짐 조인연산은 db 자원을 많이 잡아먹는 무거운 연산이고 db 성능에는 한계가 있어 서버를 확장해서 자원을 쓰는 것이 유리함 라는 근거를 들었습니다. 이것이 맞는 판단인지 궁금합니다 (금융권에 계신 분이 쓴 듯 합니다)
안녕하세요. 강의실습을 진행하다가 궁금한 사항이 있어 문의드립니다. 가장최근 급여정보를 비상관으로 풀이한 쿼리를 보면 서브쿼리내에 GROUP BY가 생략된 것 같아서요 select * from hr.emp_salary_hist a where todate = ( select max (todate) from hr.emp_salary_hist x where a.empno = x.empno); 서브쿼리내 where a.empno = x.empno 에 의해 group by 가 없어도 직원별 max(todate)를 가져오게 된건가요? 그러면 아래의 쿼리에서도 group by를 생략해도 되는건가요? -- 2건 이상 주문을 한 고객 정보 select * from nw.customers a where exists ( select 1 from nw.orders x where x.customer_id = a.customer_id group by customer_id having count (*) >=2);
select distinct city from station where city not like '%a%' or city not like '%e%' or city not like '%i%' or city not like '%o%' or city not like '%u%' 위 쿼리는 제가 작성한 쿼리입니다 이렇게 쿼리 작성하는건 문제에서 말하는 의도는 맞긴한 것 같은데 값 산출이 안되더라구요 다른분이 적어주신 코드(아래)를 보면 or로 연결을하고있는데 한번에 and조건으로 '%a%' 로 하면안되는건지 궁금합니다. SELECT DISTINCT city FROM station WHERE city NOT LIKE 'a%' AND city NOT LIKE 'e%' AND city NOT LIKE 'i%' AND city NOT LIKE 'o%' AND city NOT LIKE 'u%' OR city NOT LIKE '%a' AND city NOT LIKE '%e' AND city NOT LIKE '%i' AND city NOT LIKE '%o' AND city NOT LIKE '%u'
LeetCode 177 번에서 LIMIT, OFFSET 을 사용해서 문제를 풀라고 하셨을때 DISTINCT 와 LIMIT 를 같이 쓰셨던데 그것들 중 뭐가 먼저 작동하는지 작동 순서가 궁급합니다. 아래는 강사님의 풀이입니다 CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT BEGIN SET N = N-1; RETURN ( SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT 1 OFFSET N ); END 그리고 아래의 데이터가 input 이라고 생각해보면 처음 제 생각은 이랬습니다 ORDER BY -> LIMIT -> DISTINCT 순대로 실행된다면 N=2 일때 우선 ORDER BY Salary DESC 를 진행해도 Salary 값이 같으므로 100, 100 그대로일 것이고, 여기서 LIMIT 를 하면 1개만 가져와서 100 이 될겁니다. 거기서 DISTINCT 를 해도 100 이 될거고요 근데 결과가 그렇게 나오지 않는 걸 보면 위의 제가 생각했던 순서가 틀린거겠죠? ORDER BY -> DISTINCT -> LIMIT 가 맞나요? N = 2 일때 ORDER BY Salary DESC 를 진행해도 Salary 값이 같으므로 100, 100 그대로일 거고, 여기서 DISTINCT 를 하여 100 이 되고, LIMIT 를 하면 데이터가 1개이므로 2번째로 큰 Salary 를 구할 수 없어서 null 이 되는 것인가요? ORDER BY, DISTINCT, LIMIT 의 작동 순서를 알고싶습니다
안녕하세요! 처음으로 dbeaver 을 사용하는데 sql추출하는 곳의 글꼴 크기가 너무 작아 구글을 통해 환경설정을 하려고 했습니다. 근데 보통 설정>모양>색상및 글꼴>기본>텍스트 글꼴 하면 된다고 나오는데... 저한테는 텍스트 글꼴 목록자체가 나오지 않습니다. 이부분에 대해서도 구글링을 해보았지만 해답이 나오지 않습니다. 혹시 선생님께서 알고 계시다면 알려주시면 감사하겠습니다...!
안녕하세요! leetcode 184. Department Highest Salary 풀이영상 잘 봤습니다. 풀이영상 보기 전에 계속 답이 틀리다가 결국 성공한건 아래의 쿼리인데, 아무리 생각해도 비효율적인 쿼리처럼 보여서요! 풀이영상처럼 푸는 방법말고 with 문과 이너쿼리를 사용하는데 좀 더 간결하게 작성할 수 있는 방법이 있을까요? with dd as ( select d.name as name, max(e. salary) as max_salary from Employee e join Department d on e.departmentID = d.id group by d.name) select d.name as Department, e.name as Employee, e.salary as Salary from Employee e join Department d on e.departmentID = d.id join dd on dd.name = d.name where e.salary = dd.max_salary
안녕하세요 처음 강의를 들을 때 h2 데이터베이스를 설치하여 진행하였을 때는 잘 진행되었는데, 강의를 다시 들으며 h2를 실행시켜보니 갑자기 실행이 되지 않습니다. 환경변수는 잘 설정되어있고 명령 프롬프트로 질문들 검색해서 나온 모든 해결방법을 실행해보았는데, 반응이 없고 h2 console 바로가기를 클릭해도 반응이 없습니다... 백신관련은 제거했습니다. 14.200 말고 최근버젼으로도 도전해봤습니다. 어떻게 해야 해결될까요?ㅠㅠ https://www.inflearn.com/questions/543652/%EC%9C%88%EB%8F%84%EC%9A%B0-h2-console-bat-%EC%8B%A4%ED%96%89-%EC%95%88%EB%90%A8-%ED%95%B4%EA%B2%B0%ED%95%A8 *이 방법도 시도해봣으나 안됩니다 C:\tools\h2\bin>/"h2.bat" '/"h2.bat"'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 주문 조회 V3: 엔티티를 DTO로 변환 - 페치 조인 최적화 Spring Boot 3.2버전에서 실습 중에, distinct 옵션을 사용하지 않고도 distinct 옵션을 넣은 것처럼 Row가 2줄 출력됩니다. 이것저것 코드를 확인하다가 Spring Boot를 2.x 버전으로 내린 후에 다시 확인해보았는데, 그제서야 강의에 나오는 것처럼 중복 데이터 4개가 나옵니다. 혹시 이것 관련해서 jpa에서 업데이트가 된 것인지요..? 검색 능력이랑 문서 능력 찾아보는 능력이 딸려, 한참 찾아보다 여기에 질문합니다 ㅜㅜ 실례가 안된다면 이러한 내용을 어떻게 찾는지도 알게 될 수 있다면 좋을거 같습니다!