การทำความสะอาดข้อมูลในฐานข้อมูล PostgreSQL
Darryl Reeves, Ph.D.
Industry Assistant Professor, New York University
... | name | score | inspection_type | ...
----+------------------+-------+----------------------------------------------+-----
... | ... | ... | ... | ...
... | SCHNIPPERS | 27 | Cycle Inspection / Initial Inspection | ...
... | ATOMIC WINGS | | Administrative Miscellaneous / Re-inspection | ...
... | WING LING | 44 | Cycle Inspection / Initial Inspection | ...
... | JUAN VALDEZ CAFE | 24 | Cycle Inspection / Initial Inspection | ...
... | FULTON GRAND | 22 | Cycle Inspection / Initial Inspection | ...
... | ... | ... | ... | ...
รูปแบบที่ใช้แทนค่าที่หายไป:
NULL (ทั่วไป)'' - สตริงว่าง (ใช้กับคอลัมน์ประเภทสตริง)
ความผิดพลาดของมนุษย์
ปัญหาเชิงระบบ


... | name | score | inspection_type | ...
----+------------------+-------+----------------------------------------------+-----
... | ... | ... | ... | ...
... | SCHNIPPERS | 27 | Cycle Inspection / Initial Inspection | ...
... | ATOMIC WINGS | | Administrative Miscellaneous / Re-inspection | ...
... | WING LING | 44 | Cycle Inspection / Initial Inspection | ...
... | JUAN VALDEZ CAFE | 24 | Cycle Inspection / Initial Inspection | ...
... | FULTON GRAND | 22 | Cycle Inspection / Initial Inspection | ...
... | ... | ... | ... | ...

SELECT
*
FROM
restaurant_inspection
WHERE
score IS NULL;
SELECT
COUNT(*)
FROM
restaurant_inspection
WHERE
score IS NULL;
SELECT
inspection_type,
COUNT(*) as count
FROM
restaurant_inspection
WHERE
score IS NULL
GROUP BY
inspection_type
ORDER BY
count DESC;
inspection_type | count
--------------------------------------------------+-------
Administrative Miscellaneous / Initial Inspection | 104
Smoke-Free Air Act / Initial Inspection | 29
Calorie Posting / Initial Inspection | 22
Administrative Miscellaneous / Re-inspection | 22
Trans Fat / Initial Inspection | 18
Smoke-Free Air Act / Re-inspection | 7
Trans Fat / Re-inspection | 3
วิธีที่ดีที่สุด: ค้นหาและเพิ่มค่าที่หายไป
กำหนดค่าแทน (เช่น ค่าเฉลี่ย, มัธยฐาน)
ตัดแถวข้อมูลออก
COALESCE(arg1, [arg2, ...])
SELECT
name,
COALESCE(score, -1),
inspection_type
FROM
restaurant_inspection;
... | name | score | inspection_type | ...
----+------------------+-------+----------------------------------------------+-----
... | ... | ... | ... | ...
... | SCHNIPPERS | 27 | Cycle Inspection / Initial Inspection | ...
... | ATOMIC WINGS | -1 | Administrative Miscellaneous / Re-inspection | ...
... | WING LING | 44 | Cycle Inspection / Initial Inspection | ...
... | JUAN VALDEZ CAFE | 24 | Cycle Inspection / Initial Inspection | ...
... | FULTON GRAND | 22 | Cycle Inspection / Initial Inspection | ...
... | ... | ... | ... | ...
การทำความสะอาดข้อมูลในฐานข้อมูล PostgreSQL