-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsql_data_cleaninig_project.sql
More file actions
85 lines (69 loc) · 1.98 KB
/
Copy pathsql_data_cleaninig_project.sql
File metadata and controls
85 lines (69 loc) · 1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Create database data_cleaning_db;
USE data_cleaning_db;
Create Table Employee(
id INT,
Name VARCHAR(50),
dept_id VARCHAR(50),
Salary INT,
City VARCHAR(50));
INSERT INTO employee VALUES
(1, ' Amit', 1, 50000, 'Delhi'),
(2, 'Neha ', 2, NULL, 'Mumbai'),
(3, 'ROHAN', 1, 60000, 'delhi'),
(4, 'Priya', NULL, 45000, 'Bangalore'),
(5, 'amit', 1, 50000, 'Delhi'),
(6, 'Karan', 3, -1000, 'Pune'),
(7, ' Neha', 2, 70000, 'MUMBAI');
/*
Data Issues in Dataset:
1. Extra Spaces in text values
2. Case Mismatch (e.g., DELHI vs delhi)
3. NULL values present (missing data)
4. Duplicate records exist
5. Invalid salary values (negative salary like -1000)
*/
ALTER TABLE Employee
Modify dept_id INT;
UPDATE Employee
SET Name= LOWER(TRIM(Name));
UPDATE Employee
SET City=UPPER(TRIM(City));
UPDATE Employee
SET Salary=(SELECT AVG(Salary) FROM (SELECT Salary FROM Employee WHERE Salary IS NOT NULL)AS Temp)
WHERE Salary IS NULL;
DELETE e1 FROM employee e1
JOIN employee e2
ON e1.name = e2.name
AND e1.dept_id = e2.dept_id
AND e1.salary = e2.salary
AND e1.city = e2.city
AND e1.id > e2.id;
-- optional
UPDATE employee
SET dept_id = 0
WHERE dept_id IS NULL;
SELECT * FROM Employee;
/* Query 1: Dept-wise average salary */
SELECT dept_id ,AVG(Salary) AS Average_Salary
FROM Employee
GROUP BY dept_id;
/* Insight: “Department 1 has the highest average salary, indicating better pay scale compared to other departments.” */
/*City-wise employee count */
SELECT City ,COUNT(*) AS Total_Employee
FROM Employee GROUP BY City;
/*Insight:
“Most employees are concentrated in MUMBAI, showing it as a major working location.” */
/*Query 3: Highest salary employee*/
SELECT * FROM Employee
ORDER BY Salary DESC
LIMIT 1;
/*Insight:
“The highest salary employee earns 70000, indicating top earning level in the dataset.” */
/*Query 4: Salary category*/
SELECT name ,Salary,
CASE
WHEN salary >60000 THEN 'HIGH'
WHEN Salary BETWEEN 40000 AND 60000 THEN 'MEDIUM'
ELSE 'LOW'
END AS Salary_Category
FROM Employee;