https://www.youtube.com/watch?v=FZ0GCcnIIWA&list=PLBTZqjSKn0IfuIqbMIqzS-waofsPHMS0E&index=2

-- Create table 'tickets'
CREATE TABLE tickets (
    ticket_id VARCHAR(10),
    create_date DATE,
    resolved_date DATE
);

-- Delete existing data from 'tickets'
DELETE FROM tickets;

-- Insert data into 'tickets'
INSERT INTO tickets VALUES
    (1, '2022-08-01', '2022-08-03'),
    (2, '2022-08-01', '2022-08-12'),
    (3, '2022-08-01', '2022-08-16');

-- Create table 'holidays'
CREATE TABLE holidays (
    holiday_date DATE,
    reason VARCHAR(100)
);

-- Delete existing data from 'holidays'
DELETE FROM holidays;

-- Insert data into 'holidays'
INSERT INTO holidays VALUES
    ('2022-08-11', 'Rakhi'),
    ('2022-08-15', 'Independence Day');

DATEDIFF() - datediff(date2, date1)
DATEPART() - datepart(week,date2,date1) (Doesn't Exist in mysql)
SUBQUERY

SELECT 
    *,
    DATEDIFF(resolved_date, create_date) AS Actual_Days,
    DATEDIFF(resolved_date, create_date) - 2 *
    FLOOR(DATEDIFF(resolved_date, create_date) / 7) - No_Of_Holidays AS
    Business_Days
FROM
    (SELECT 
        ticket_id,
            create_date,
            resolved_date,
            COUNT(holiday_date) AS No_Of_Holidays
    FROM
        tickets t
    LEFT JOIN holidays h ON holiday_date BETWEEN create_date AND resolved_date
    GROUP BY ticket_id , create_date , resolved_date) H;

Pasted image 20241110191605.png
Pasted image 20241110191628.png
Pasted image 20241110191642.png