묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
강의연장 신청합니다
안녕하세요. 복습한번 하려고 하는데 강의 연장 가능할까요?
-
미해결MySQL 성능 최적화
섹션 4 Theory 영상에서 계속해서 노션의 화면 위치가 이동
섹션 4 Theory 영상에서 계속해서 노션의 화면 위치가 이동되는데 크게 불편하지는 않지만 발견해서 한번 적어봅니당
-
미해결다양한 사례로 익히는 SQL 데이터 분석
mau 구할때 group by 사용안해도 count 집계함수가 왜 가능한지 모르겠습니다.
웹 접속 및 사용분석 실습 1번 파일입니다. select :current_date , count(distinct user_id) as daufrom ga_sesswhere visit_stime >= (:current_date - interval '1 days') and visit_stime < :current_date. 위 코드의 count()는 왜 group by 없이도 작동하는 것인가요?
-
미해결다양한 사례로 익히는 SQL 데이터 분석
매출분석 1에서 partition by와 group by의 차이
안녕하세요 선수 강의에서 언급한 내용일 수도있는데 선수 강의를 수강하지 않아 질문드립니다!매출분석 01의 상품별 매출액 과 상품별 카테고리별 전체 매출액 대비 비율 강의에서 질문있습니다 상품별 카테고리별 전체 매출액 대비 비율은sum_amount(product 기준으로 groupby한 상품별 매출액) / sum(sum_amount) over (partition by category_name) as product_category_ratio 로 구했는데partition by가 아니라 group by category_name 로 분석할 수는 없는건가요?sum(sum_amount) over (partition by category_name) 이 부분 자체가 작은 groupby를 진행한? 결과인 걸까요 over partition by와 group by간의 차이, 사용용도의 차이가 궁금합니다
-
미해결[리뉴얼] 처음하는 MongoDB(몽고DB) 와 NoSQL(빅데이터) 데이터베이스 부트캠프 [입문부터 활용까지] (업데이트)
몽고DB 비교 문법 출력이 안 됩니다.
안녕하세요. find 로 document 출력하는 건 다 되는데요 비교 문법($)만 쓰면 결과가 나오지 않습니다.어떻게 해야 하나요?
-
미해결다양한 사례로 익히는 SQL 데이터 분석
postgres 설치 오류
postgres가 설치가 되지 않고다음과 같은 메시지만 계속 뜹니다.삭제 후 다시 해봐도 똑같은데, 어쩌죠?
-
미해결[리뉴얼] SQL 베이스캠프
w3schools 에서 오류가 발생하는데 궁금증이 있습니다.
안녕하세요 sql 관련 기초 강의를 듣기 시작한 학생입니다막 듣기 시작하여 w3schools tutorial 에서 sql 수순을 따라서 실행하며 학습을 하던 중에 있어서강의에서는 잘 작동하는 기본구문들이 실제 사이트 실습에서는 작동이 되지않아 무엇이 문제인가 계속 알아봐도 해결되지 않아 문의 남기게 되었습니다.SELECT CustomerID as 회원번호 FROM Customers ;SELECT CustomerID %2 FROM Customers ;와 같이 일반적인 구문들 중 이런 구문들이 실행이 되지않습니다.Error in SQL:The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.위 회원번호가 들어간 구문의 오류입니다. 회원번호를 id 같이 영어로 바꾸었을 때는 실행이 됩니다.왜 그런걸까요...?Error in SQL:Syntax error in query expression 'CustomerID %2'.이 error 는 바로 밑 구문 에러입니다 .
-
미해결다양한 사례로 익히는 SQL 데이터 분석
맥 계정에서 postgres 접속 시 비밀번호 입력 실패현상
맥에서 postgres 계정에 접속하려고 할 시 해당 화면이 뜨는데 postgres를 입력해도 저런 오류가 떠서 질문드립니다 ㅠㅠ
-
해결됨오라클 성능 분석과 인스턴스 튜닝 핵심 가이드
Hard Parsing의 자원 사용
안녕하세요.SQL 실행 계획의 이해와 Hard Parsing, Soft Parsing의 차이 강의에서 궁금한 점이 있어 질문글을 남깁니다! 12:00 분 경부터 설명해주시는 하드 파싱 부분에서, 하드 파싱이 Library Cache의 Latch를 자주 사용하는것이 문제가 된다 설명해주셨는데요,그럼 하드파싱시에 SQL 파싱, 비용계산, 소스코드 생성과 같은 일련의 과정보다 이런 생성된 정보들을 Library Cache에 올리는것이 훨씬 더 큰 자원을 필요로 하는것일까요?그냥 추상적으로만 알고있었을때는 옵티마이저가 비용을 계산하는 과정이 제일 자원을 많이 잡아먹는 문제일거라고 생각했어서 …ㅎㅎ그리고 latch는 ms 수준으로만 잠긴다고 알고있어, 큰 문제를 유발하지 않을것같은 생각이 막연하게 들어 질문을 드립니다. 모르는 내용 많이 배워가고 있습니다 !! 감사합니다~
-
미해결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 Fundamentals
Group by를 이용한 월별 입사동기를 구할 때 좀 더 깔끔한 방법 질문
안녕하세요.마지막에 group by로 묶어서 입사동기로 나올 때, 뒤에 일자 + 00:00:00 까지 나오는 게 보기가 안 좋아서요. 년-월만 나오게 할 수 있을까요? 가령,select date_part('year',hire_month)||'-'||date_part('month', hire_month), countsfrom(select date_trunc('month', hiredate) as hire_month, count(*) as countsfrom hr.emp_testgroup by date_trunc('month', hiredate)); 로 하면 나오긴 하는데 이건 서브쿼리를 이용한 방법이라 좀 더 간결하게 표현하고 싶습니다.
-
해결됨데이터 분석 SQL Fundamentals
::timestamp ::text 관련 질문이 있습니다.
to_date('2022-01-01', 'yyyy-mm-dd')::timestamp;여기서 ::timestamp를 통해 타임스탬프 형태로 바꿔주는데to_timestmap('2022-01-01', 'yyyy-mm-dd') 로 바로 해 주는 것과 무슨 차이가 있나요?
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
쿼리 상에서 설명 추가방법+단축키도 함께
쿼리상에서 실행되지 않게 설명 추가하는 방법이 어떻게 될까요?이전에 단축키랑 함께 배웠는데 못찾겠네요 ㅠ - 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
Alter 질문이 있습니다
만약 스키마 생성 후 데이터 적재까지 완료했다고 가정할 때,Alter 구문으로 테이블 스키마 수정 혹은 컬럼 추가를 하게되면 기존에 적재된 데이터는 없어지나요?아니면 그대로 유지되나요? 적재 후 나중에라도 컬럼 추가하거나 PK 추가하고 싶을 때 어떻게 해결하는지 궁금합니다.아예 DROP 하고 처음부터 스키마 생성해서 적재하나요? 좋은 강의 감사합니다.
-
해결됨오라클 성능 분석과 인스턴스 튜닝 핵심 가이드
Sequential Acess는 HDD상에서도 Block을 Sequential하게 읽나요?
안녕하세요!강의 Section2의 데이터베이스 IO Access 유형 이해 - Sequential 과 Random Access 에서 헷갈리는 점이 있어서 질문을 남깁니다.Radom access 와 Table Full scan(강의 중 9:00~)에 있는 Table은 실제로는 Block 단위로 저장되어 있을텐데, HDD 상에서도 이 Block이 연속으로 저장되어 있는건가요 ??Random acces는 Hard disk 에서 랜덤하게 접근하기 때문에 disk access time이 더 걸린다고 앞에서 말씀해주셨는데, 만약 hdd상에서 block 위치가 여기저기에 있으면 table full scan도 disk access time이 똑같이 많이 걸리지 않을까 ...싶어서 개념이 헷갈립니다.정리하자면 Sequential 이라는 개념이 물리적인 disk에서도 시퀀셜하게 읽는다는건지..? 궁금합니다
-
미해결[리뉴얼] SQL 베이스캠프
섹션1 - 6회차 실습 에러
안녕하세요. 섹션1의 6회차 실습 중에 에러가 발생하여 문의드립니다. 에러 메시지는 아래 첨부된 이미지로 확인해 주세요.노션에 제공된 코드를 그대로 복사하여 붙여넣었고,root 패스워드를 제가 설정한 패스워드로 수정한 것말곤 없습니다. (*사용 중인 환경: MAC) 어떻게 해결할 수 있을까요? 도와주세요! ㅠ_ㅠ
-
미해결MySQL 성능 최적화
해당 강의 제공 코드를 보니 DB 커넥션 정보를 넘길때 포트가 빠졌네요
수업 자료에서도 포트가 빠져있어서 왜 계속 인증 오류가 뜨나 했네요 시간 되시면 수정 부탁드립니다.
-
미해결데이터 분석 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.idINNER JOIN c ON a.id = c.idLEFT OUTER JOIN d ON a.id = d.id;[1.2]select * from a INNER JOIN b ON a.id = b.idLEFT OUTER JOIN d ON a.id = d.idINNER JOIN c ON a.id = c.id;
-
미해결MySQL 성능 최적화
Task2는 직접해보는 부분인가요?
Task1만 하시고 끝나서 그런데 Task2는 직접 하는건지 강의가 추후에 올라오는 건지 궁금합니다
-
미해결다양한 사례로 익히는 SQL 데이터 분석
pandas 연계시 오류.....
(아나콘다를 깔고나서 새 파일에서 뭘 수정하려고하면 바로 연결이 끊기는 문제가 생겨 주피터 노트북으로 설치하였습니다. 필요한 라이브러리들은 모두 따로 설치하였습니다.)버전은 아래와 같습니다.오류가 발생하는 부분은 이 부분인데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