본문 바로가기
728x90
반응형

Database38

[1일1쿼리] 오늘이 생일인 사람이 각 부서마다 몇명인가 ? select right(e.birth_date,5) as 'birthDay' , d.dept_name, count(e.emp_no) as 'count'from employees as ejoin dept_emp as m on m.emp_no = e.emp_noleft join departments as d on d.dept_no = m.dept_nowhere right(e.birth_date,5)= substring(now(),6,5) and m.to_date = '9999-01-01'group by d.dept_namewith rolluporder by d.dept_name desc, e.emp_no asc; 2025. 1. 8.
[1일1쿼리] 현재 재직중인 Technique Leader 의 월급중 가장 높은 사람의 부서는? ## 현재 재직중인 Technique Leader 의 월급중 가장 높은 사람의 부서는?WITH RankedSalaries AS ( SELECT t.emp_no, t.title, t.from_date, s.salary, m.dept_no, ROW_NUMBER() OVER (ORDER BY s.salary DESC) AS rnk FROM titles AS t JOIN salaries AS s ON s.emp_no = t.emp_no JOIN dept_emp AS m ON m.emp_no = t.emp_no WHERE t.title = 'Technique Leader' AND s.to_date = '9999-01-01')SELECT R.emp_no, R... 2025. 1. 7.
[1일1쿼리] 현재 재직중인 Technique Leader 의 월급중 가장 높은 사람은? 내가 만든 쿼리 (Query Cost = 144233.44)SELECT t.emp_no, t.title, t.from_date, s.salary FROM titles AS tJOIN salaries AS s ON s.emp_no = t.emp_noWHERE t.title = 'Technique Leader' AND s.to_date = '9999-01-01' ORDER BY s.salary DESC LIMIT 1;  개선 쿼리1. ROW_NUMBER()를 활용한 서브쿼리(queryCost = 3.50)ROW_NUMBER()를 사용하면 정렬된 순서에서 가장 높은 값을 가진 직원만 빠르게 가져올 수 있습니다. 이는 특히 많은 데이터를 .. 2025. 1. 6.
[1일 1쿼리] 2일차 2000년 1월 의 부서별 평균 연봉중 가장 높은 부서는 ? 01/03일 select m.dept_no , d.dept_name, avg(s.salary) as '평균' from salaries as sjoin dept_emp as m on m.emp_no = s.emp_no join departments as d on d.dept_no = m.dept_noWHERE s.from_date = '2000-01-01' group by m.dept_no order by avg(s.salary) desc limit 1;   친구와 공유한 쿼리 사원 번호가 10007인 사원의 부서를 찾고 그 부서의 매니저의 이름을 출력하여라select e.last_name, e.first_name, dm.* from employees as e join dept_emp as m .. 2025. 1. 3.
[1일 1쿼리] 1일차 development부서에서 가장 높은 연봉을 받는 사람은? select s.emp_no , s.salary , e.first_name, e.last_name, e.gender from salaries as sjoin dept_emp as m on s.emp_no = m.emp_nojoin employees as e on e.emp_no = s.emp_nowhere m.dept_no = (select dept_no from departments as d where dept_name = 'Development') order by salary desc limit 1; 2025. 1. 3.
[MySQL] Error Code: 1140. In aggregated query without GROUP BY,expression #1 of SELECT list contains nonaggregated column %% this is incompatible with sql_mode=only_full_group_by 0.000 sec Error 코드Error Code: 1140. In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column  %%%  this is incompatible with sql_mode=only_full_group_by 0.000 sec 이 오류는 여러 행에 집계 값을 포함하려고 할 때 발생할 수 있습니다. 예를 들어, 행 그룹 내의 모든 행의 소계를 반환하려고 할 수 있습니다. 윈도우 함수는 이러한 결과를 얻는 데 도움이 될 수 있습니다. 첫번째 해결책 . 윈도우 함수 select `orderProduct`, `orderId`,sum(orderCount) as `총 주문수량` from `Orde.. 2024. 7. 8.
[MySQL]Error Code: 3813. Column check constraint 'tablename_chk_2' references other column. table 생성시 해당 문제가 발생했습니다.저의 경우 column 명이 잘못 적혀있어기 때문에 이 문제가 발생하였다, # 에러 발생create table user5 ( seq int primary key auto_increment, name varchar(10) not null, gender char(1) check (gender IN('M','F')), age int default 1 check (age > 0 AND a  => 에러가 발생한 부분은 ch2부분이므로 두번째 chk 사항인 age 부분에서 잘못된 부분을 찾아봤다.나의 문제는 age를 a 로 적혀있었기 때문에 column이 잘못되어 에러가 발생함 a-> age로 변경시 잘 작동됨.#정상 실행create table user5.. 2024. 7. 3.
[MySQL] 테이블 생성 및 제거 테이블 생성 및 제거 CREATE TABLE 테이블명 (칼럼명1 자료형1, 칼럼명2 자료형2, ...); 칼럼명적을때 작은따옴표가 아닌 ` 을 사용함 , ` 없어도 생성 가능 mysql> create table test ( -> id char(5), -> name varchar(10), -> hp char(13), -> age int -> ); mysql> create table `User1`( -> `uid` varchar(10), -> `name` varchar(10), -> `hp` char(13), -> `age` int -> );  DROP TABLE 테이블명;DROP TABLE IF EXISTS 테이블명;insert into [tabl.. 2024. 7. 1.
[MySQL] Error Code: 1175 Error codeYou are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 0.000 sec  문제 원인 안전 업데이트 모드에서 발생하는 에러. 안전 업데이트 모드는 실수로 모든 행을 수정하거나 삭제하는 것을 방지하기 위해 MySQL에서 사용하는 보호기능  오류발생의 주요 원인  안전 업데이트 모드 활성화: MySQL Workbench나 다른 클라이언트에서 안전 업데이트 모드가 활성화된 상태입니다.WHERE 절의 부재 또는 비키 컬.. 2024. 7. 1.
[MySQL] 사용자 생성, 사용자 권한부여, 사용자 조회 #외부접근 허용하는 사용자 추가create user ‘아이디’@’%’ identified by ‘password’;#내부접근 허용하는 사용자 추가create user ‘id’@’localhost’ identified by ‘password’;#특정 ip만 접근을 허용하는 사용자 추가create user ‘id’@’ip’ identified by ‘passowrd’;#특정 ip 대역대를 허용하는 사용자 추가craete user ‘id’@’192.168.%’ identified by ‘password’; drop user ‘아이디’@’%’;delete from user where user=’사용자’; use mysql; # mysql 스키마 선택select user,host from user; # 사용자 목.. 2024. 7. 1.
728x90
반응형