ยอดเงินที่ลูกค้าแต่ละรายใช้จ่ายด้วย sub-queries

การตัดสินใจเชิงข้อมูลด้วย SQL

Tim Verdonck

Professor Statistics and Data Science

คำสั่ง SELECT ต่อเนื่อง - นักแสดงหญิง

Query 1:

SELECT *
FROM actors
WHERE gender = 'female';
| actor_id | name          | year_of_birth | nationality | gender |
|----------|---------------|---------------|-------------|--------|
| 1        | Abbie Cornish | 1982          | Australia   | female |
| 4        | Amy Adams     | 1974          | USA         | female |
การตัดสินใจเชิงข้อมูลด้วย SQL

คำสั่ง SELECT ต่อเนื่อง - นักแสดงหญิง

SELECT * -- Query 1
FROM actors
WHERE gender = 'female';
  • จัดกลุ่มตารางผลลัพธ์จาก query 1 ตาม nationality
  • แสดงปีเกิดของนักแสดงหญิงที่อายุมากที่สุดและน้อยที่สุดในแต่ละประเทศ
SELECT af.nationality, 
       MIN(af.year_of_birth), 
       MAX(af.year_of_birth)
FROM
    (SELECT *
    FROM actors
    WHERE gender = 'female') AS af
GROUP BY af.nationality;
การตัดสินใจเชิงข้อมูลด้วย SQL

ผลลัพธ์จากคำสั่ง SELECT ต่อเนื่อง - นักแสดงหญิง

SELECT af.nationality, 
       MIN(af.year_of_birth), 
       MAX(af.year_of_birth)
FROM
    (SELECT *
    FROM actors
    WHERE gender = 'female') AS af
GROUP BY af.nationality;
| nationality | min  | max  |
|-------------|------|------|
| Italy       | 1976 | 1976 |
| Iran        | 1952 | 1952 |
| USA         | 1945 | 1993 |
การตัดสินใจเชิงข้อมูลด้วย SQL

ลูกค้าแต่ละรายใช้จ่ายเงินไปเท่าไร?

  • ขั้นตอนแรก: เพิ่ม renting_price จาก movies เข้าไปในตาราง renting
SELECT r.customer_id,
       m.renting_price
FROM renting AS r
LEFT JOIN movies AS m
ON r.movie_id=m.movie_id;
| customer_id | renting_price |
|-------------|---------------|
| 41          | 2.59          |
| 10          | 2.79          |
| 108         | 2.39          |
| 39          | 1.59          |
| 104         | 1.69          |
การตัดสินใจเชิงข้อมูลด้วย SQL

ลูกค้าแต่ละรายใช้จ่ายเงินไปเท่าไร?

  • ขั้นตอนที่สอง:
    • จัดกลุ่มตารางผลลัพธ์จากขั้นตอนแรกตาม customer_id
    • คำนวณผลรวมของ renting_price
SELECT rm.customer_id, 
           SUM(rm.renting_price)
FROM
       (SELECT r.customer_id, 
               m.renting_price
       FROM renting AS r
       LEFT JOIN movies AS m
       ON r.movie_id=m.movie_id) AS rm
GROUP BY rm.customer_id;
การตัดสินใจเชิงข้อมูลด้วย SQL

ลูกค้าแต่ละรายใช้จ่ายเงินไปเท่าไร?

| customer_id | sum   |
|-------------|-------|
| 116         | 7.47  |
| 87          | 17.53 |
| 71          | 6.87  |
| 68          | 1.59  |
| 51          | 4.87  |
การตัดสินใจเชิงข้อมูลด้วย SQL

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

การตัดสินใจเชิงข้อมูลด้วย SQL

Preparing Video For Download...