inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

커버링 인덱스

미해결

MySQL 성능 최적화

실습 내용 질문 드립니다~! CREATE INDEX idx_covering on orders(customer_id, order_date, total_amount); select * from orders where customer_id = 25675 order by order_date desc limit 10; 4개의 컬럼 중 PK를 제외한 3개만 있는데 어떻게 커버링 인덱스로 활용할 수 있는건가요?

  • sql
  • mysql
  • dbms/rdbms
  • optimizing
yhwjd 댓글 2 좋아요 0 조회수 669

Group by를 이용한 월별 입사동기를 구할 때 좀 더 깔끔한 방법 질문

해결됨

데이터 분석 SQL Fundamentals

안녕하세요. 마지막에 group by로 묶어서 입사동기로 나올 때, 뒤에 일자 + 00:00:00 까지 나오는 게 보기가 안 좋아서요. 년-월만 나오게 할 수 있을까요? 가령, select date_part ('year', hire_month )||'-'|| date_part ('month', hire_month ), counts from ( select date_trunc ('month', hiredate ) as hire_month, count (*) as counts from hr.emp_test group by date_trunc ('month', hiredate) ); 로 하면 나오긴 하는데 이건 서브쿼리를 이용한 방법이라 좀 더 간결하게 표현하고 싶습니다.

  • sql
  • postgresql
  • dbms/rdbms
KoKuMa 댓글 1 좋아요 0 조회수 235

::timestamp ::text 관련 질문이 있습니다.

해결됨

데이터 분석 SQL Fundamentals

to_date('2022-01-01', 'yyyy-mm-dd')::timestamp; 여기서 ::timestamp를 통해 타임스탬프 형태로 바꿔주는데 to_timestmap('2022-01-01', 'yyyy-mm-dd') 로 바로 해 주는 것과 무슨 차이가 있나요?

  • sql
  • postgresql
  • dbms/rdbms
KoKuMa 댓글 1 좋아요 1 조회수 182

AVG문의 드립니다

미해결

[백문이불여일타] 데이터 분석을 위한 중급 SQL

안녕하세요 보통 평균을 구한다고 하면 동일한 name을 가진 A를 2가 아닌 1로 생각해서 1+2+3+5 / 3 = 3.67 이렇게 계산을 하는데 AVG 함수는 좀 다르게 표현되는거 같아서요 제가 생각했을 때는 문제가 vistis의 평균을 구해라 라고 한다면 SELECT AVG(visits) FROM sample WHERE DISTINCT name ,,, 뭐 이런식으로 중복제거가 들어가야 할거 같은데 설명 부탁드립니다 ~!

  • sql
jinv93 댓글 1 좋아요 0 조회수 199

lag, leag 강의에서 game-play-analysis-iv 문제

해결됨

SQL 코딩테스트를 위한 마지막 걸음

https://leetcode.com/problems/game-play-analysis-iv/ 이 문제를 풀고 있는데, 제가 작성한 코드는 SELECT ROUND(COUNT(player_id) /(SELECT COUNT(DISTINCT player_id) FROM Activity),2) as fraction FROM ( SELECT player_id, LAG(player_id) OVER (ORDER BY player_id) AS prev_id, LAG(event_date) OVER (ORDER BY player_id) AS prev_date, event_date, RANK() OVER (PARTITION BY player_id ORDER bY event_date) AS rnk FROM Activity ) A WHERE rnk = 2 AND DATE_ADD(prev_date, INTERVAL 1 day) = event_date AND player_id = prev_id 입니다. 이 코드로 정답을 체크해 보았을 때 wrong answer라 뜨지만, A FROM절 안에서 event_date, rnk의 순서를 LAG 앞으로 바꾸어 주었을 땐 정답 처리가 되었습니다. 왜 그런걸까요?? 아래는 순서를 바꿨을 때 정답처리 되었던 코드 입니다. SELECT ROUND(COUNT(player_id) /(SELECT COUNT(DISTINCT player_id) FROM Activity),2) as fraction FROM ( SELECT player_id, event_date, RANK() OVER (PARTITION BY player_id ORDER bY event_date) AS rnk, LAG(player_id) OVER (ORDER BY player_id) AS prev_id, LAG(event_date) OVER (ORDER BY player_id) AS prev_date FROM Activity ) A WHERE rnk = 2 AND DATE_ADD(prev_date, INTERVAL 1 day) = event_date AND player_id = prev_id

  • sql
  • mysql
  • 코딩-테스트
soiejung 댓글 2 좋아요 1 조회수 443

쿼리 상에서 설명 추가방법+단축키도 함께

미해결

[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]

쿼리상에서 실행되지 않게 설명 추가하는 방법이 어떻게 될까요? 이전에 단축키랑 함께 배웠는데 못찾겠네요 ㅠ - 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다) - 이외의 문의등은 평생강의이므로 양해를 부탁드립니다 - 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다 - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • python
  • sql
  • mysql
  • dbms/rdbms
  • 데이터-엔지니어링
김혜린 댓글 1 좋아요 0 조회수 244

LIKE/IN 질문

미해결

[백문이불여일타] 데이터 분석을 위한 기초 SQL

안녕하세요 ! WHERE 해커링크풀이 1 에서 모음으로 시작하는 나라에 대한 답변을 아래와 같이 알려주셨는데 SELECT DISTINCT city FROM station WHERE city LIKE 'a%' OR city LIKE 'e%' OR city LIKE 'o%' OR city LIKE 'i%' OR city LIKE 'u%' 아래와 같이 입력하면 안될까요 ? SELECT DISTINCT city FROM station WHERE city IN ('a%', 'e%', 'o%', 'i%', 'u%' ) 안된다면 왜 안되는지도 알려주시면 감사하겠습니다.

  • sql
jinv93 댓글 1 좋아요 -1 조회수 297

Alter 질문이 있습니다

미해결

[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]

만약 스키마 생성 후 데이터 적재까지 완료했다고 가정할 때,Alter 구문으로 테이블 스키마 수정 혹은 컬럼 추가를 하게되면 기존에 적재된 데이터는 없어지나요?아니면 그대로 유지되나요? 적재 후 나중에라도 컬럼 추가하거나 PK 추가하고 싶을 때 어떻게 해결하는지 궁금합니다.아예 DROP 하고 처음부터 스키마 생성해서 적재하나요? 좋은 강의 감사합니다.

  • python
  • sql
  • mysql
  • dbms/rdbms
  • 데이터-엔지니어링
탱스 댓글 1 좋아요 0 조회수 239

Between 질문

미해결

[백문이불여일타] 데이터 분석을 위한 기초 SQL

WHERE CutormerName BETWEEN 'C' AND 'M' 이라고 했을 때 M으로 시작하는 이름은 포함되지 않는데 왜 그런거죠?

  • sql
Hyemi So 댓글 1 좋아요 0 조회수 418

Syntax error

미해결

[백문이불여일타] 데이터 분석을 위한 기초 SQL

SELECT * FROM Customers LIMIT 10 이라고 입력하고 실행했는데 Error in SQL: Syntax error in FROM clause. 이라고 뜨네요. 왜 그럴까요? Limit 10입력하기 전에는 데이터가 잘 나왔어요.

  • sql
Hyemi So 댓글 2 좋아요 1 조회수 940

set 1 - 2번 문제풀이

미해결

[백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. having total_score !=0 이라고 group by 결과값을 필터링해주셨는데 실행 순서상 서브쿼리 -> 메인쿼리(from/join -> (where) -> groupby -> having ->select -> orderby -> limit) 이지 않나요? 그런데 select 에 있는 total_score를 having에서 쓸 수 있는 이유가 궁금합니다.

  • sql
코린이 댓글 1 좋아요 0 조회수 282

해커랭크문제풀이

미해결

[백문이불여일타] 데이터 분석을 위한 기초 SQL

select FROM city(여기에서 왜 city가 들어가나요?테이블명이면 station이 들어가야하지 않는건가요?

  • sql
mu5638 댓글 2 좋아요 0 조회수 334

섹션1 - 6회차 실습 에러

미해결

[리뉴얼] SQL 베이스캠프

안녕하세요. 섹션1의 6회차 실습 중에 에러가 발생하여 문의드립니다. 에러 메시지는 아래 첨부된 이미지로 확인해 주세요. 노션에 제공된 코드를 그대로 복사하여 붙여넣었고, root 패스워드를 제가 설정한 패스워드로 수정한 것말곤 없습니다. (*사용 중인 환경: MAC) 어떻게 해결할 수 있을까요? 도와주세요! ㅠ_ㅠ

  • sql
  • dbms/rdbms
김다혜 댓글 1 좋아요 0 조회수 349

질문드립니다.

미해결

데이터 분석 SQL Fundamentals

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님. 질문이 좀 있습니다. a,b,c,d table 과 id 컬럼이 있다고 가정 1) 여기서 [1.1] 쿼리는 실행 계획으로 치면 a,b,c를 이너조인해서 만든 데이터셋으로 d와 아우터조인해서 결과 도출. 이렇게 이해하고 있습니다. 그런데, 여기서 궁금한것이 LEFT OUTER JOIN은 서술 왼쪽 테이블이 드라이빙 고정으로 알고 있습니다. 그래서, [1.2] 쿼리는 실행 계획으로 치면 a,b를 이너조인해서 만든 데이터셋으로 d와 아우터조인해서 데이터 셋을 새로만듬. 그리고 , c와 이너조인 진행 이렇게 이해하면 될까요? 2) 1.1과 1.2처럼 아우터조인의 서술 위치에 따라서 결과값에 대한 데이터가 달라질수 있나요? 결국 a.id와 조인하기 때문에 해당 기준으로 데이터를 뽑아서 어디에 서술하던지 데이터는 달라질수 없는거같은데 제가 이해한게 맞는지 질문드립니다. 3) 2번을 질문드린 이유중 하나인데요. 아우터 조인을 쓰면 테이블의 드라이빙 순서가 고정되버리니까 서술한 위치에 따라서 실행계획이 바뀔테고 그러면 데이터가 변경될수도 있는 사례가 있을까요? 실행계획은 아무리 바뀌어도 데이터의 영향을 주는건 없는걸로 알지만 , 자꾸 뭔가 헷갈려서 질문드립니다. 4) a.id = b.id on b.id =c.id on c.id =d.id 이런식으로 조건을 주면 이너 조인은 상관 없겠지만 아우터 조인을 진행할 때는 데이터가 달라질거 같은데 보통은 아우터 조인 쿼리를 작성할 때 조인 조건을 어떻게 줘야하나요? 제가 적은 예시처럼 쿼리를 짜나요?? 질문이 두서 없고 너무 많아서 죄송합니다.. 강사님 강의를 통해 확실하게 잡고 가지 않으면 추후에 또 다시 공부를 해야할 거 같아 질문드립니다. [1.1] select * from a INNER JOIN b ON a.id = b.id INNER JOIN c ON a.id = c.id LEFT OUTER JOIN d ON a.id = d.id; [1.2] select * from a INNER JOIN b ON a.id = b.id LEFT OUTER JOIN d ON a.id = d.id INNER JOIN c ON a.id = c.id;

  • sql
  • postgresql
  • dbms/rdbms
gomadafter 댓글 3 좋아요 0 조회수 456

Task2는 직접해보는 부분인가요?

미해결

MySQL 성능 최적화

Task1만 하시고 끝나서 그런데 Task2는 직접 하는건지 강의가 추후에 올라오는 건지 궁금합니다

  • sql
  • mysql
  • dbms/rdbms
  • optimizing
ysko 댓글 1 좋아요 0 조회수 458

백엔드 개발자가 이 강의를 들어도 괜찮을까요??

미해결

[백문이불여일타] 데이터 분석을 위한 기초 SQL

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 제목 그대로 백엔드 개발자가 들어도 괜찮은 강의인지 궁금합니다. (이미 강의를 결제했지만요 ㅎㅎ..) 강의에서 전체적으로 다루는줄 알았는데 select에 집중한다길래.. 내가 생각한 강의가 아닌가.. 싶어서 이렇게 글 남깁니다.

  • sql
댓글 1 좋아요 0 조회수 415

pandas 연계시 오류.....

미해결

다양한 사례로 익히는 SQL 데이터 분석

(아나콘다를 깔고나서 새 파일에서 뭘 수정하려고하면 바로 연결이 끊기는 문제가 생겨 주피터 노트북으로 설치하였습니다. 필요한 라이브러리들은 모두 따로 설치하였습니다.) 버전은 아래와 같습니다. 오류가 발생하는 부분은 이 부분인데 query문이 있는 셀의 전체 오류문은 아래와 같습니다 --------------------------------------------------------------------------- UnicodeDecodeError Traceback (most recent call last) Cell In[12], line 4 1 query = """ 2 select * from nw.customers 3 """ ----> 4 df = pd.read_sql_query(sql=query, con=postgres_engine) 5 df.head(10) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\pandas\io\sql.py:485, in read_sql_query(sql, con, index_col, coerce_float, params, parse_dates, chunksize, dtype, dtype_backend) 482 dtype_backend = "numpy" # type: ignore[assignment] 483 assert dtype_backend is not lib.no_default --> 485 with pandasSQL_builder(con) as pandas_sql: 486 return pandas_sql.read_query( 487 sql, 488 index_col=index_col, (...) 494 dtype_backend=dtype_backend, 495 ) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\pandas\io\sql.py:851, in pandasSQL_builder(con, schema, need_transaction) 848 raise ImportError("Using URI string without sqlalchemy installed.") 850 if sqlalchemy is not None and isinstance(con, (str, sqlalchemy.engine.Connectable)): --> 851 return SQLDatabase(con, schema, need_transaction) 853 warnings.warn( 854 "pandas only supports SQLAlchemy connectable (engine/connection) or " 855 "database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 " (...) 858 stacklevel=find_stack_level(), 859 ) 860 return SQLiteDatabase(con) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\pandas\io\sql.py:1576, in SQLDatabase.__init__(self, con, schema, need_transaction) 1574 self.exit_stack.callback(con.dispose) 1575 if isinstance(con, Engine): -> 1576 con = self.exit_stack.enter_context(con.connect()) 1577 if need_transaction and not con.in_transaction(): 1578 self.exit_stack.enter_context(con.begin()) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\engine\base.py:3268, in Engine.connect(self) 3245 def connect(self) -> Connection: 3246 """Return a new :class:`_engine.Connection` object. 3247 3248 The :class:`_engine.Connection` acts as a Python context manager, so (...) 3265 3266 """ -> 3268 return self._connection_cls(self) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\engine\base.py:145, in Connection.__init__(self, engine, connection, _has_events, _allow_revalidate, _allow_autobegin) 143 if connection is None: 144 try: --> 145 self._dbapi_connection = engine.raw_connection() 146 except dialect.loaded_dbapi.Error as err: 147 Connection._handle_dbapi_exception_noconnection( 148 err, dialect, engine 149 ) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\engine\base.py:3292, in Engine.raw_connection(self) 3270 def raw_connection(self) -> PoolProxiedConnection: 3271 """Return a "raw" DBAPI connection from the connection pool. 3272 3273 The returned object is a proxied version of the DBAPI (...) 3290 3291 """ -> 3292 return self.pool.connect() File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:452, in Pool.connect(self) 444 def connect(self) -> PoolProxiedConnection: 445 """Return a DBAPI connection from the pool. 446 447 The connection is instrumented such that when its (...) 450 451 """ --> 452 return _ConnectionFairy._checkout(self) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:1269, in _ConnectionFairy._checkout(cls, pool, threadconns, fairy) 1261 @classmethod 1262 def _checkout( 1263 cls, (...) 1266 fairy: Optional[_ConnectionFairy] = None, 1267 ) -> _ConnectionFairy: 1268 if not fairy: -> 1269 fairy = _ConnectionRecord.checkout(pool) 1271 if threadconns is not None: 1272 threadconns.current = weakref.ref(fairy) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:716, in _ConnectionRecord.checkout(cls, pool) 714 rec = cast(_ConnectionRecord, pool._do_get()) 715 else: --> 716 rec = pool._do_get() 718 try: 719 dbapi_connection = rec.get_connection() File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\impl.py:169, in QueuePool._do_get(self) 167 return self._create_connection() 168 except: --> 169 with util.safe_reraise(): 170 self._dec_overflow() 171 raise File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\util\langhelpers.py:146, in safe_reraise.__exit__(self, type_, value, traceback) 144 assert exc_value is not None 145 self._exc_info = None # remove potential circular references --> 146 raise exc_value.with_traceback(exc_tb) 147 else: 148 self._exc_info = None # remove potential circular references File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\impl.py:167, in QueuePool._do_get(self) 165 if self._inc_overflow(): 166 try: --> 167 return self._create_connection() 168 except: 169 with util.safe_reraise(): File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:393, in Pool._create_connection(self) 390 def _create_connection(self) -> ConnectionPoolEntry: 391 """Called by subclasses to create a new ConnectionRecord.""" --> 393 return _ConnectionRecord(self) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:678, in _ConnectionRecord.__init__(self, pool, connect) 676 self.__pool = pool 677 if connect: --> 678 self.__connect() 679 self.finalize_callback = deque() File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:902, in _ConnectionRecord.__connect(self) 900 self.fresh = True 901 except BaseException as e: --> 902 with util.safe_reraise(): 903 pool.logger.debug("Error on connect(): %s", e) 904 else: 905 # in SQLAlchemy 1.4 the first_connect event is not used by 906 # the engine, so this will usually not be set File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\util\langhelpers.py:146, in safe_reraise.__exit__(self, type_, value, traceback) 144 assert exc_value is not None 145 self._exc_info = None # remove potential circular references --> 146 raise exc_value.with_traceback(exc_tb) 147 else: 148 self._exc_info = None # remove potential circular references File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:898, in _ConnectionRecord.__connect(self) 896 try: 897 self.starttime = time.time() --> 898 self.dbapi_connection = connection = pool._invoke_creator(self) 899 pool.logger.debug("Created new connection %r", connection) 900 self.fresh = True File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\engine\create.py:637, in create_engine.<locals>.connect(connection_record) 634 if connection is not None: 635 return connection --> 637 return dialect.connect(*cargs, **cparams) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\engine\default.py:616, in DefaultDialect.connect(self, *cargs, **cparams) 614 def connect(self, *cargs, **cparams): 615 # inherits the docstring from interfaces.Dialect.connect --> 616 return self.loaded_dbapi.connect(*cargs, **cparams) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\psycopg2\__init__.py:122, in connect(dsn, connection_factory, cursor_factory, **kwargs) 119 kwasync['async_'] = kwargs.pop('async_') 121 dsn = _ext.make_dsn(dsn, **kwargs) --> 122 conn = _connect(dsn, connection_factory=connection_factory, **kwasync) 123 if cursor_factory is not None: 124 conn.cursor_factory = cursor_factory UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb8 in position 63: invalid start byte

  • sql
  • postgresql
  • dbms/rdbms
  • 퍼포먼스-마케팅
  • 데이터-엔지니어링
yes 댓글 3 좋아요 0 조회수 1319

강의 연장 가능할까요

해결됨

SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법

안녕하세요, 성능좋은 쿼리작성법 수강중인 수강생입니다. 제가 다른 업무로 인해 좋은 강의를 아직 모두 수강하지 못했는데 혹시 연장 가능할까요? 감사합니다.

  • sql
  • dbms/rdbms
댓글 1 좋아요 0 조회수 348

수업 강의 자료라는 것은 어느 메뉴로 들어가야하나요

미해결

[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]

수업 강의 자료라는 것은 어느 메뉴로 들어가야하나요???? 메뉴를 찾을 수가 없어요..

  • python
  • sql
  • mysql
  • dbms/rdbms
  • 데이터-엔지니어링
nevermind223 댓글 1 좋아요 0 조회수 306

인기 태그

인프런 TOP Writers

주간 인기글