การดึงค่า key ระดับบนสุดจาก JSON
ทีมภาคสนามจาก Idaho กลับมาพร้อมภารกิจใหม่แล้ว พวกเขาได้รับสถานีตรวจวัดสภาพอากาศเครื่องใหม่ที่ส่งออกข้อมูลในรูป JSON string และต้องการให้ช่วยดึงข้อมูลออกมาให้ JSON ดังกล่าวอยู่ใน CTE ชื่อ weather_station ซึ่งเก็บ JSON string ไว้ในคอลัมน์ data
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Introduction to Redshift
คำแนะนำการฝึกหัด
- ดึงค่า
'date'จากdataโดยตั้งชื่อว่าweather_date - ดึงค่า
'weather'จากdataโดยตั้งชื่อว่าweather_state
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- weather_station CTE with the JSON in the data column
WITH weather_station AS (
SELECT '
{
"location": "Salmon Challis National Forest",
"date": "2024-02-10",
"weather": "Rainy",
"temperature": {
"current": 10,
"min": 8,
"max": 12,
"hourly_temperature": [8, 8, 9, 9, 10, 10, 11, 11, 12]
}
}'::SUPER::VARCHAR as data
-- Above line casts to SUPER and then to
-- VARCHAR to ensure it's ready for parsing
)
-- Extract the date value
SELECT ___(___, ___) AS ___,
-- Extract the weather value
___(___, ___) AS ___
-- Using the CTE
FROM ___;