처음에 sudo apt-get install php7.3-mysql 입력 후 다음과 같은 에러가 나옵니다. Err:1 http://ppa.launchpad.net/ondrej/php/ubuntu bionic/main amd64 php7.3-mysql amd64 7.3.9-1+ubuntu18.04.1+ deb.sury.org +1 404 Not Found [IP: 185.125.190.52 80] E: Failed to fetch http://ppa.launchpad.net/ondrej/php/ubuntu/pool/main/p/php7.3/php7.3-mysql_7.3.9-1+ubuntu18.04.1+deb.sury.org+1_amd64.deb 404 Not Found [IP: 185.125.190.52 80] E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? 그 후 모든 과정을 거쳐 새로고침을 하면 다음과 같은 화면과 함께 아래와 같이 오류가 나타납니다. 172.17.0.1:51430 [500]: /?t=1695604917124 - Uncaught Error: Call to undefined function mysqli_connect() in /workspace/tsetsql/index.php:9 Stack trace: #0 {main} thrown in /workspace/tsetsql/index.php on line 9
좋은 강의 만들어주셔서 진심으로 감사드립니다! :) 마지막 세션 강의 들으면서 질문이 하나 있어서 글 남기게 되었습니다! UNION을 활용하여 쿼리를 짜주셨는데, 혹시 UNION을 활용하지 않고 짤 수 있는 쿼리는 없을까요? (GPT에 물어봤는데 제 지식이 짧아서인지 제대로 된 답변을 받지 못했습니다ㅠㅠ) 만약 있다면, 언제 UNION을 활용해서 쿼리를 짜는 것이 좋은지 언제 UNION을 활용하지 않고 쿼리를 짜는 것이 좋은지에 대한 판단은 어떻게 할 수 있을까요~? 문제를 풀어보면서 UNION 없이 쿼리를 짜는 방법을 모르다보니 이 부분에 대한 판단이 안됐었는데요! 결과물을 보니 UNION 없이 쿼리를 작성하면 복잡해질 것 같다는 생각이 들긴 하지만, 실제 비슷한 상황에서는 UNION을 활용하기 보다 한 번에 쿼리를 짜내려고 할 것 같아서 문의드려용!
아래와 같은 쿼리를 리트코드에 입력하였는데, 계속 오류가 났다고 하는데 어디가 잘못되었는지 알 수 있을까요? 그리고 다른 쿼리는 작성했는데 AND e.salary = dh.max_salary 해당 쿼리는 생각을 못하고 그냥 SELECT 최종구문에서 MAX(Salary)를 뽑아내면 된다고 생각했는데 어떤 부분이 잘못되었는지 알 수 있을까요? 감사합니다. SELECT d.name AS Deparment , e.name AS Employee , e.salary as Salary FROM employee AS e INNER JOIN( SELECT departmentid, MAX(salary) AS max_salary FROM employee GROUP BY departmentid ) AS dh ON dh.departmentid = e.departmentid AND e.salary = dh.max_salary INNER JOIN department AS d ON e.departmentid = d.id
안녕하세요 윈도우 환경에서 work bench 설치 관련하여 문의드립니다. 영상 상으로는 Developer default로 설정해서 설치하는 걸로 되어 있는데 저는 따로 그 옵션이 없습니다. Custom으로 설정해서 pdf 파일에 본대로 똑같이 설치하면 Workbench가 설치가 안되서요 사진 첨부 합니다 확인부탁드립니다..!
안녕하세요, [Group By 절에 가공 컬럼 및 case when 적용 실습] 강의 2:18쯤 나오는 화면인데요, hiredate에서 연도만 추출하고 싶을 때 데이터 타입을 그대로 날짜로 두지 않고 굳이 to_char를 활용해서 문자로 바꿔주는 이유가 무엇인지 궁금합니다. 감사합니다.
특정 문제에 대한 질문이 아니라 강의 학습 중 활용에 관한 질문인데요. 1. 프로그래머스 스쿨과 해커랭크 등에서 배운 내용들을 적용하며 풀고 있는데, 서브쿼리를 사용하겠다는 단서를 파악할 수 있는 방법이 있을까요? 어떤 경우에는 서브쿼리를 사용했는데 왜 서브쿼리를 사용해야하는지마저 떠올리지 못해서 활용을 제대로 못하고 있는거 같습니다. 조인을 할 때 left join과 inner join의 차이 inner join은 보면 null값을 포함하지 않고 left join은 null값을 포함하는 것으로 인지하고 있어서 웬만하면 실수를 줄이기 위해서 left join을 쓰는데 이것도 맞다고 볼 수 있을까요? 긴 글 읽어주셔서 감사합니다.
-- 4. 강의별 평균 학점, 꿀강의 TOP 3 조회 SELECT courses.title AS "강의명", ROUND(AVG(grade_points.point), 2) AS "평균 학점" FROM courses JOIN grades ON grades.course_id = courses.id JOIN grade_points ON grade_points.grade = grades.grade GROUP BY courses.title ORDER BY AVG(point) DESC LIMIT 3 ; -- 서브쿼리 이용 답 SELECT courses.title AS "강의명", ggul_courses.round AS "평균 학점" FROM courses JOIN ( -- 강의별_평균학점 SELECT course_id, ROUND(AVG(grade_points.point), 2) FROM grades JOIN grade_points ON grade_points.grade = grades.grade GROUP BY course_id HAVING AVG(point) > ( -- 모든_강의의_평균_학점 SELECT AVG(point) FROM grades JOIN grade_points ON grade_points.grade = grades.grade ) ORDER BY AVG(point) DESC LIMIT 3 ) AS ggul_courses ON ggul_courses.course_id = courses.id ; 일반 JOIN이용과 서브쿼리 이용 결과가 다르게 출력되는데 서브쿼리 안에서 정렬을 했지만 최종 결과는 정렬이 되지 않네요? 왜 그런건가요..? 이러면 JOIN이 더 나은 걸까요?
-- 3. 평균 학점이 3.5미만인 학생은? SELECT students.nickname AS "닉네임", ROUND(AVG(grade_points.point),2) AS "평균 학점" FROM students JOIN grades ON grades.student_id = students.id JOIN grade_points ON grade_points.grade = grades.grade GROUP BY students.nickname HAVING 3.5 > AVG(grade_points.point) ; -- 서브 쿼리 이용 답 SELECT students.nickname AS "닉네임", avg_grade_point.round AS "평균 학점" FROM students JOIN (-- 학생별_평균_학점 SELECT student_id, ROUND(AVG(point), 2) FROM grades JOIN grade_points ON grade_points.grade = grades.grade GROUP BY student_id HAVING AVG(point) < 3.5 ) AS avg_grade_point ON avg_grade_point.student_id = students.id ; 서브 쿼리를 이용하려고 생각하는 게 좋을까요? 단순히 JOIN만 사용해서 할 수 있으면 JOIN만 써도 괜찮을까요..? 현업에서는 어떤 걸 더 많이 쓰게 될지 궁금합니다!
안녕하세요 해당 문제에 대한 반복 수강으로 서브쿼리에 대한 이해가 어느정도 되었는데 문제를 외워서 푼 감도 있어서 몇 가지 여쭤봅니다 /*SELECT months*salary AS earnings, count(*) FROM employee WHERE months*salary = (SELECT MAX(months*salary) FROM employee) GROUP BY earnings*/ SELECT months*salary AS earnings, count(*) FROM employee GROUP BY earnings HAVING earnings = (SELECT MAX(months*salary) FROM employee) 아래와 같이 쿼리를 짰는데 WHERE절에는 선생님께서 earnings 알리아스로 축약한 것을 사용할 수 없다고 하시더라고요 where절만 특징적으로 그런건가요? 반대로 having절에서는 months*salary로는 값이 안나오고 earnings로 했을 때는 정답이 출력되어서요 as가 어느절에서는 적용이 되고 안되는지 명확한 이해가 필요할 거 같습니다. 마지막에 select count(*)을 해서 최대 임금을 가진 그룹바이로 엮은 값의 수를 구하였는데 이전 문제들 중 count(*)대신 전체를 셀 때 name이나 id 등으로도 가능했는데 여기서는 기준이 같은 점수 예를 들어 108044 jane 108044 kim 이런식이어서 이름으로는 묶을 수 없는게 맞을까요? count(*)의 정의가 명확히 정립이 안된거 같습니다ㅜ 감사합니다.
안녕하세요 강사님 group by + distinct를 비교해보다 이유는 모르겠지만 위에 distinct를 넣은 것은 day 컬럼이 자동으로 정렬이 되었고 아래의 distinct를 넣지 않은 컬럼은 정렬 되지 않았습니다 아래도 역시 distinct 를 넣으니 자동 오름차순이 되었습니다 ( count ( DISTINCT oi.order_id)) 혹시 그 이유가 궁금합니다 또, order by 처리 시 쿼리 속도가 느려진다는 말이 있는데 이런식으로 order by 를 넣지 않고 자동 정렬 되는 것이 있다면 쿼리 속도 향상에 도움이 될까요? 쿼리문 자동 정렬 SELECT date_part ( 'day', o.order_date) AS DAY , sum (amount) AS sum_amount , count ( DISTINCT o.order_id) AS daily_ord_cut FROM orders o , order_items oi WHERE 1 = 1 AND o.order_id = oi.order_id GROUP BY date_part ( 'day', o.order_date) ORDER BY 1 ; 정렬 안됨 SELECT date_part ( 'day', o.order_date) AS DAY , sum (amount) AS sum_amount , count ( oi.order_id) AS daily_ord_cut FROM orders o , order_items oi WHERE 1 = 1 AND o.order_id = oi.order_id GROUP BY date_part ( 'day', o.order_date);
안녕하세요, 강사님 수업을 들은 후에 DBeaver로 쿼리를 따라해보면서 복습을 하고 있습니다. 그런데 이상하게도 강사님과 동일한 쿼리를 입력하여도 저는 중복으로 값이 나오는 현상이 때때로 있습니다. 예를 들어 아래의 between 문법의 경우, 행의 갯수는 총 12개가 되어야 맞는데 저는 중복이 되어서 24개가 되네요. select a.*, b.grade as salgrade, b.losal, b.hisal from hr.emp a join hr.salgrade b on a.sal between b.losal and b.hisal; 처음엔 제가 쿼리를 잘못 입력한줄 알았는데, 동일한 쿼리인데도 이런 경우가 가끔 발생하더라구요. 앞에 제가 연습하면서 수행했던 쿼리의 캐시값이 남아서 이렇게 되는 것일까요? 원인을 알아서 해결하고 싶습니다 ㅠㅠ