sql 문법 질문드립니다.

sql 문법 질문드립니다.

작성일 2023.08.02댓글 1건
    게시물 수정 , 삭제는 로그인 필요

+-----------------+--------------------+--------------------+-------------------+-------------------+-------------------+-------------------+------------+------------+----------+---------+-------------------+-----+----+---------+--------------------+-----------+----+----------+-------------------+-----------------+------------------+----------------+--------------+ |hvfhs_license_num|dispatching_base_num|originating_base_num| request_datetime| on_scene_datetime| pickup_datetime| dropoff_datetime|PULocationID|DOLocationID|trip_miles|trip_time|base_passenger_fare|tolls| bcf|sales_tax|congestion_surcharge|airport_fee|tips|driver_pay|shared_request_flag|shared_match_flag|access_a_ride_flag|wav_request_flag|wav_match_flag| +-----------------+--------------------+--------------------+-------------------+-------------------+-------------------+-------------------+------------+------------+----------+---------+-------------------+-----+----+---------+--------------------+-----------+----+----------+-------------------+-----------------+------------------+----------------+--------------+ | HV0005| B02510| null|2020-03-01 00:00:12| null|2020-03-01 00:03:40|2020-03-01 00:23:39| 81| 159| 8.655| 1199| 24.45| 0.0|0.54| 1.9| 0.0| null| 0.0| 19.65| N| N| N| N| N| | HV0005| B02510| null|2020-03-01 00:22:03| null|2020-03-01 00:28:05|2020-03-01 00:38:57| 168| 119| 3.523| 652| 11.88| 0.0|0.24| 0.85| 0.0| null| 0.0| 9.37| N| N| N| N| N| | HV0003| B02764| B02764|2020-02-29 23:57:45|2020-03-01 00:01:04|2020-03-01 00:03:07|2020-03-01 00:15:04| 137| 209| 4.07| 717| 14.57| 0.0|0.38| 1.38| 2.75| null| 0.0| 16.24| N| Y| | N| N| | HV0003| B02764| B02764|2020-03-01 00:04:06|2020-03-01 00:15:48|2020-03-01 00:18:42|2020-03-01 00:38:42| 209| 80| 4.73| 1200| 13.89| 0.0|0.35| 1.23| 0.75| null| 0.0| 21.76| Y| N| | N| N| | HV0003| B02764| B02764|2020-03-01 00:42:46|2020-03-01 00:43:18|2020-03-01 00:44:24|2020-03-01 00:58:44| 256| 226| 4.03| 860| 20.2| 0.0|0.51| 1.79| 0.0| null| 0.0| 19.64| N| N| | N| N| +-----------------+--------------------+--------------------+-------------------+-------------------+-------------------+-------------------+------------+------------+----------+---------+-------------------+-----+----+---------+--------------------+-----------+----+----------+-------------------+-----------------+------------------+----------------+--------------+


이런 데이터프레임이 있을 때 

ss.sql("select pickup_datetime as pickup_date, count(*) as trip_count\
       from (select split(pickup_datetime, ' ')[0] as pickup_datetime \
       from mobility_dataset)\
       group by pickup_datetime\
       order by pickup_datetime asc").show()

이 쿼리를 짯고 결과가 
+-----------+----------+ |pickup_date|trip_count| +-----------+----------+ | 2020-03-01| 784260| | 2020-03-02| 648990| | 2020-03-03| 697880| | 2020-03-04| 707879| | 2020-03-05| 731165| | 2020-03-06| 872012| | 2020-03-07| 886071| | 2020-03-08| 731222| | 2020-03-09| 628940| | 2020-03-10| 626474| | 2020-03-11| 628601| | 2020-03-12| 643257| | 2020-03-13| 660914| | 2020-03-14| 569397| | 2020-03-15| 448125| | 2020-03-16| 391518| | 2020-03-17| 312298| | 2020-03-18| 269233| | 2020-03-19| 252773| | 2020-03-20| 261900| +-----------+----------+
이렇게 제가 원하는 결과가 나왔는데,

사실 위와 같은 결과를 만드려고 제가 짠 쿼리는 맞는데,

count(*) 부분하고 group by 하는 부분에서 좀 햇갈립니다. 

+------------+ |splited_date| +------------+ | 2020-03-01| | 2020-03-02| | 2020-03-03| | 2020-03-04| | 2020-03-05| | 2020-03-06| | 2020-03-07| | 2020-03-08| | 2020-03-09| | 2020-03-10| | 2020-03-11| | 2020-03-12| | 2020-03-13| | 2020-03-14| | 2020-03-15| | 2020-03-16| | 2020-03-17| | 2020-03-18| | 2020-03-19| | 2020-03-20| +------------+

날짜를 groupby 하면 이렇게 모아지게 되는데

count(*) as trip_count

이 쿼리가 날짜들을 groupby 해놓고 count하면 1이 나와야하지 않나? 하는 생각을 하는데,

메모리에 어떻게 저장되길래 연산이 가능한건가요?? 

from 

groupby 

having 
...

이 순으로 진행되는건 알겠는데 

어떻게 돌아가고 있는지를 알고싶습니다.



#sql 문법 #sql 문법 정리 pdf #sql 문법 검사 #sql 문법 순서 #sql 문법 종류 #sql 문법 총정리 #sql 문법 예제 #sql 문법 join

profile_image 익명 작성일 -

오늘의 ₍๐•ᴗ•๐₎미용부장₍๐•ᴗ•๐₎ 입니다.

정성 스럽게 작성하여 도움될수 있는 수기 답변 드리겠습니다.^^

정성스런 답변:

count(*)는 group by 절에 사용되어 그룹화된 결과의 레코드 수를 반환합니다. 따라서 count(*) as trip_count는 각 날짜별로 그룹화된 결과에서 레코드 수를 세어 trip_count라는 새로운 열로 반환하는 것입니다.

쿼리는 할당된 메모리에 의해 실행되며, 그룹화된 결과와 count(*) 함수의 연산은 메모리에서 이루어집니다.

그룹화된 결과는 날짜별로 모아져 있고, count(*) 함수는 해당 그룹의 레코드 수를 세어 trip_count 값을 계산합니다. 이후 결과는 출력됩니다.

따라서, count(*) 함수를 사용하여 그룹화된 결과의 레코드 수를 계산할 수 있고, 이는 메모리에서 실시간으로 이루어지는 것입니다.

₍๐•ᴗ•๐₎답변에 만족하셨다면 답변확정을 추가로 궁금하신점이 있으시다면 추가질문을 부탁드리겠습니다.⬤⬤⬤

좋은하루되세요!₍๐•ᴗ•๐₎

sql 문법 질문드립니다.

... ss.sql("select pickup_datetime as pickup_date, count(*) as trip_count\ from (select... 추가질문을 부탁드리겠습니다.⬤⬤⬤ 좋은하루되세요!₍๐...

ms sql 문법 질문드립니다!

... AS는 보통 별칭을 의미 합니다. A라는 컬럼을 A as C 라고하면 C로 조회결과가 나오게되죠. 정확한 질문의 요지를 파악하기 위해 전체 쿼리를 질문 주세요.

MySQL 문법 질문 드립니다.

... 예를 들어 SELECT * FROM B WHERE ~~ WHERE 뒤에 어떤 문법이 들어가야할지 모르겠습니다. 고수 분들 잘 부탁드립니다. 질문의 의도가 맞는지는 모르겠지만......

SQL 문법 질문이요!

... 조건주는 문법을 보았습니다. 혹시 이건 문법용어? 해설? 이런걸 어디서 볼... 답변부탁드립니다! IN 절은 SQL에서 조건을 검색할 때 사용하는 절입니다. IN...

mssql 쿼리문 문법 질문드립니다.

... 쿼리문 분석하는데 이해가 안되는 부분이 있어서 질문올립니다.. 조건절 부분에.. AND CASE WHEN @pBFType = '0' THEN backflush ELSE 2 END <> '1' 이부분인데.....

pl/sql 질문드립니다.

... pl./sql을 막 배우는중인 비기너입니다!... 수행까지 아니더라도 구문의 기본 문법 상에서... 읽어보고 질문에 적당하다고 보이는 글...

내공 100 !! MYSQL의 기초 문법에 대해

... 베스트 답변이 꼭 나오도록 잘 부탁 드립니다.. 싸이트... 내공 100을 걸고 질문을 올리셨네요.. 기초적인 문법을... 질문이란걸 하도록 하세요.. 님이 검색엔진에서 sql 이란...

mysql질문드립니다.

mysql문법으로 데이터를 'INSERT'할때 이런식으로 중복되는 userID값에대해 info가 연결되어 들어갈 수 있도록 하는 방법이 궁금합니다. 먼저 우측 처럼...