สิ่งที่เขียนไม่ใช่สิ่งที่ SQL มองเห็น

การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL

Amy McCarty

Instructor

ลำดับการดำเนินการทางพีชคณิต

 

  • เชิงคำสั่ง (ตามที่เขียน)
  • เชิงตรรกะ (ตามที่ประมวลผล)

 

PEMDAS BODMAS
Parenthesis Brackets
Exponents Order
Multiplication /Division Division /Multiplication
Addition /Subtraction Addition /Subtraction
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL

การประยุกต์ใช้ลำดับการดำเนินการ

 

เชิงคำสั่ง:

$$ x = 2 + (8 + 4) \div 2 $$

$$ x = 10 + 4) \div 2 $$

$$ x = 14 \div 2 $$

$$ x = 7 $$

 

เชิงตรรกะ:

$$ x = 2 + (8 + 4) \div 2 $$

$$ x = 2 + \frac{12}{2} $$

$$ x = 2 + 6 $$

$$ x = 8 $$

การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL

ลำดับการดำเนินการเชิงตรรกะของ SQL

ลำดับ Clause วัตถุประสงค์
1 FROM ระบุตารางที่ใช้ รวมถึงการ join
2 WHERE กรองหรือจำกัดแถว
3 GROUP BY จัดกลุ่มแถว
4 SUM(), COUNT(), ฯลฯ การ aggregate
5 SELECT ระบุคอลัมน์ที่ต้องการคืน
SELECT COUNT(*) FROM tableA WHERE col1 = 77
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL

GROUP BY และการ aggregate

event_location storm elements days
Russia blizzard water 1
Argentina tornado water 1
Argentina tornado wind 1
Australia tornado wind 1
Kuwait haboob wind 2
USA haboob wind 2
SELECT elements, storm, COUNT(*)
FROM weather_events
GROUP BY elements

 

No output - 
your code generated an error

column "storm" must appear in the 
GROUP BY clause or be used in an 
aggregate function
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL

ลำดับการดำเนินการของ GROUP BY และการ aggregate

SELECT elements, storm, COUNT(*)
FROM weather_events
GROUP BY elements
ลำดับ SQL clause คอลัมน์ที่ใช้ได้
1 FROM weather_events ทั้งหมด
3 GROUP BY elements elements
4 COUNT elements
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL

GROUP BY ต้องตรงกับการ aggregate

SELECT elements, storm, COUNT(*)
FROM weather_events
GROUP BY elements, storm
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL

GROUP BY ต้องตรงกับการ aggregate

SELECT elements, storm, COUNT(*)
FROM weather_events
GROUP BY elements, storm

ผลลัพธ์

elements storm count
water blizzard 1
water tornado 1
wind tornado 2
wind haboob 2
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL

ลำดับการดำเนินการเชิงตรรกะของ SQL (ต่อ)

ลำดับ Clause วัตถุประสงค์
...
5 SELECT ระบุคอลัมน์ที่ต้องการคืน
6 DISTINCT ลบแถวที่ซ้ำกัน
7 ORDER BY เรียงลำดับผลลัพธ์
8 LIMIT ตัดแถวออก
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL

DISTINCT และ LIMIT

row_no location storm elements days
1 Russia blizzard water 1
2 Argentina tornado water 1
3 Argentina tornado wind 1
4 Australia tornado wind 1
5 Kuwait haboob wind 2
6 USA haboob wind 2
SELECT DISTINCT storm, elements
FROM weather_events
ORDER BY storm LIMIT 3
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL
row_no location storm elements days
1 Russia blizzard water 1
2 Argentina tornado water 1
3 Argentina tornado wind 1
4 Australia tornado wind 1
5 Kuwait haboob wind 2
6 USA haboob wind 2
SELECT DISTINCT storm, elements
FROM weather_events 
ORDER BY storm LIMIT 3
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL
row_no location storm elements days
1 Russia blizzard water 1
2 Argentina tornado water 1
3 Argentina tornado wind 1
4 Australia tornado wind 1
5 Kuwait haboob wind 2
6 USA haboob wind 2
SELECT DISTINCT storm, elements
FROM weather_events 
ORDER BY storm LIMIT 3
ลำดับ SQL clause แถวที่ใช้ได้
1 FROM weather_events ทั้งหมด
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL
row_no storm elements
1 blizzard water
2 tornado water
3 tornado wind
5 haboob wind

 

 

SELECT DISTINCT storm, elements
FROM weather_events
ORDER BY storm LIMIT 3
ลำดับ SQL clause แถวที่ใช้ได้
1 FROM weather_events ทั้งหมด
5 SELECT storm, elements ทั้งหมด
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL
row_no storm elements
1 blizzard water
2 tornado water
3 tornado wind
5 haboob wind

 

 

SELECT DISTINCT storm, elements
FROM weather_events
ORDER BY storm LIMIT 3
ลำดับ SQL clause แถวที่ใช้ได้
1 FROM weather_events ทั้งหมด
5 SELECT storm, elements ทั้งหมด
6 DISTINCT 1, 2, 3, 5
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL
row_no storm elements
1 blizzard water
5 haboob wind
2 tornado water
3 tornado wind

 

 

SELECT DISTINCT storm, elements
FROM weather_events
ORDER BY storm LIMIT 3
ลำดับ SQL clause แถวที่ใช้ได้
1 FROM weather_events ทั้งหมด
5 SELECT storm, elements ทั้งหมด
6 DISTINCT 1, 2, 3, 5
7 ORDER BY storm 1, 5, 2, 3
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL
row_no storm elements
1 blizzard water
5 haboob wind
2 tornado water

 

 

 

SELECT DISTINCT storm, elements
FROM weather_events
ORDER BY storm LIMIT 3
ลำดับ SQL clause แถวที่ใช้ได้
1 FROM weather_events ทั้งหมด
5 SELECT storm, elements ทั้งหมด
6 DISTINCT 1, 2, 3, 5
7 ORDER BY storm 1, 5, 2, 3
8 LIMIT 3 1, 5, 2
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL
ลำดับ Clause วัตถุประสงค์ ข้อจำกัด
1 FROM ระบุตารางที่ใช้
2 WHERE กรองหรือจำกัดแถว # แถว
3 GROUP BY จัดกลุ่มแถว # คอลัมน์
4 SUM, COUNT, ฯลฯ การ aggregate # แถว
5 SELECT ระบุคอลัมน์ที่ต้องการคืน # คอลัมน์
6 DISTINCT ลบแถวที่ซ้ำกัน # แถว
7 ORDER BY เรียงลำดับผลลัพธ์
8 LIMIT กรองแถว # แถว
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL

มาฝึกกันเถอะ!

การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL

Preparing Video For Download...