SQL Questions

Author

SEOYEON CHOI

Published

April 1, 2025

import pandas as pd
  1. 2023년의 총 우유 생산량을 알아낼 수 있나요? 관리자가 연간 보고서를 위해 이 정보를 원합니다. 2023년의 총 우유 생산량은 얼마인가요?

91812000000

• 맞습니다

SELECT SUM(Value) FROM milk_production WHERE Year = 2023;
  1. 2023년 4월 치즈 생산량이 1억 개를 초과한 주는 어디인가요? 치즈 부서는 이 지역에 마케팅 노력을 집중하고자 합니다.

몇 개의 주가 있나요?

2

맞습니다.

pd.read_csv('cheese_production.csv').query('Year==2023 and Period == "APR"')\
    .loc[lambda df: df['Value'].str.replace(",", "", regex=False).astype(int) > 100000000]
Year Period Geo_Level State_ANSI Commodity_ID Domain Value
0 2023 APR STATE 6.0 6 TOTAL 208,807,000
9 2023 APR STATE NaN 6 TOTAL 215,206,000
13 2023 APR STATE 55.0 6 TOTAL 289,699,000
  1. 관리자가 지난 몇 년간 커피 생산량이 어떻게 변화했는지 알고 싶어합니다. 2011년 커피 생산량의 총 가치는 얼마입니까?

7600000

° 맞습니다

SELECT Year, SUM(Value) FROM coffee_production GROUP BY Year;
  1. 다음 주에 꿀 위원회와의 회의가 있습니다. 2022년의 평균 벌꿀 생산량을 알아보고 대비하세요.

3133275

• 맞습니다

SELECT AVG(Value) FROM honey_production WHERE
  1. 주정부 관계 팀에서 모든 주 이름과 해당 ANSI 코드의 목록이 필요합니다. 이 목록을 생성할 수 있나요? 플로리다의 State_ANSI 코드는 무엇인가요?

12

• 맞습니다

SELECT * FROM state_lookup;
  1. 교차 상품 보고서의 경우 2023년 4월에 치즈를 생산하지 않은 주라도 치즈 생산량과 함께 모든 주를 나열할 수 있나요? 뉴저지의 총합은 얼마인가요?

3 -> 2049222000 쓰기

× 틀립니다

state_list = pd.read_csv('cheese_production.csv').query('Year==2023 and Period =="APR"').State_ANSI.unique().tolist()
pd.read_csv('cheese_production.csv')\
  .query('State_ANSI == 34')\
  ['Value'].str.replace(",", "", regex=False)\
  .pipe(pd.to_numeric, errors='coerce')\
  .sum()
2069941000.0
  1. 2023년의 치즈 생산 데이터도 있는 2022년 주의 총 요거트 생산량을 찾을 수 있나요? 이는 유제품 부서의 계획 수립에 도 움이 될 것입니다.

1 -> 1171095000 바꾸기

× 틀립니다

pd.read_csv('yogurt_production.csv').query('Year==2022')
Year Period Geo_Level State_ANSI Commodity_ID Domain Value
0 2022 YEAR STATE 6 4 TOTAL 377,839,000
1 2022 YEAR STATE 36 4 TOTAL 793,256,000
pd.read_csv('yogurt_production.csv').query('Year==2022')\
  ['Value'].str.replace(",", "", regex=False).astype(int).sum()
1171095000
pd.read_csv('cheese_production.csv').query('Year==2023').State_ANSI.unique().tolist()
[6.0,
 16.0,
 17.0,
 19.0,
 27.0,
 34.0,
 35.0,
 36.0,
 39.0,
 nan,
 42.0,
 46.0,
 50.0,
 55.0]
pd.read_csv('cheese_production.csv')\
  .query('Year == 2023 and (State_ANSI == 6 or State_ANSI == 36)')\
  ['Value'].str.replace(",", "", regex=False).astype(int).sum()
1113353000
SELECT SUM(y.Value)
FROM yogurt_production y
WHERE y.Year = 2022 AND y.State_ANSI IN (
    SELECT DISTINCT c.State_ANSI FROM cheese_production c WHERE c.Year = 2023);
  1. 2023년 milk_production에 누락된 state_lookup의 모든 주를 나열합니다. 몇 개의 주가 있나요?

6 -> 4 로 바꾸기

® 틀립니다

pd.read_csv('milk_production.csv').State_ANSI.isna().sum()
4
state_lookup = pd.read_csv('state_lookup.csv')
milk_production = pd.read_csv('milk_production.csv').query('Year==2023')
state_lookup[~state_lookup["State_ANSI"].isin(milk_production["State_ANSI"])].reset_index()
index State State_ANSI
0 0 ALABAMA 1
1 1 ALASKA 2
2 3 ARKANSAS 5
3 6 CONNECTICUT 9
4 7 DELAWARE 10
5 10 HAWAII 15
6 16 KENTUCKY 21
7 17 LOUISIANA 22
8 18 MAINE 23
9 19 MARYLAND 24
10 20 MASSACHUSETTS 25
11 23 MISSISSIPPI 28
12 24 MISSOURI 29
13 25 MONTANA 30
14 26 NEBRASKA 31
15 27 NEVADA 32
16 28 NEW HAMPSHIRE 33
17 29 NEW JERSEY 34
18 32 NORTH CAROLINA 37
19 33 NORTH DAKOTA 38
20 35 OKLAHOMA 40
21 38 RHODE ISLAND 44
22 39 SOUTH CAROLINA 45
23 41 TENNESSEE 47
24 47 WEST VIRGINIA 54
25 49 WYOMING 56
SELECT s.State
FROM state_lookup s
LEFT JOIN milk_production m ON s.State_ANSI = m.State_ANSI AND m.Year = 2023
WHERE m.State_ANSI IS NULL;
  1. 2023년 4월에 치즈를 생산하지 않은 주를 포함하여 치즈 생산량이 있는 모든 주를 나열합니다. 2023년 4월에 델라웨어에서 치즈를 생산한 적이 있나요?

아니오

SELECT s.State, c.Value
FROM state_lookup s
LEFT JOIN cheese_production c ON s.State_ANSI = c.State_ANSI AND c.Year = 2023 AND c.Period = 'APR';

10 꿀 생산량이 1백만 개를 초과한 모든 연도의 평균 커피 생산량을 구합니다.

192800000 로 쓰기

year_list = pd.read_csv('honey_production.csv').loc[lambda df: df['Value'].notna() & (df['Value'].str.replace(",", "", regex=False).astype(int) > 1000000)]['Year'].unique().tolist()
pd.read_csv('coffee_production.csv').query('Year in @year_list')\
  ['Value'].str.replace(",", "", regex=False).astype(int).mean()
6426666.666666667