208 lines
3.9 KiB
Plaintext
208 lines
3.9 KiB
Plaintext
-- to check duplicate CarRegistration
|
|
SELECT
|
|
`driverID`,
|
|
COUNT(*) AS `count`,created_at
|
|
FROM
|
|
`CarRegistration`
|
|
GROUP BY
|
|
`driverID`
|
|
HAVING
|
|
COUNT(*) > 1;
|
|
--
|
|
|
|
|
|
-- to delete duplicate
|
|
WITH CTE AS (
|
|
SELECT
|
|
MIN(`id`) AS `min_id`
|
|
FROM
|
|
`CarRegistration`
|
|
GROUP BY
|
|
`driverID`
|
|
)
|
|
DELETE FROM
|
|
`CarRegistration`
|
|
WHERE
|
|
`id` NOT IN (SELECT `min_id` FROM CTE);
|
|
|
|
-- get for employee
|
|
SELECT
|
|
d.`maritalStatus` AS NAME,
|
|
COUNT(*) AS `count`
|
|
FROM
|
|
`driver` d
|
|
WHERE
|
|
d.`maritalStatus` IN('Maryam', 'rawda', 'Mena') AND DATE(d.created_at) = CURDATE()
|
|
GROUP BY
|
|
d.`maritalStatus`
|
|
ORDER BY
|
|
COUNT
|
|
DESC
|
|
|
|
|
|
-- get driver without cars
|
|
|
|
SELECT
|
|
d.id, d.phone
|
|
FROM
|
|
`driver` d
|
|
WHERE
|
|
d.id NOT IN (SELECT driverID FROM CarRegistration);
|
|
|
|
|
|
-- car without drivers
|
|
|
|
SELECT
|
|
cr.created_at, cr.driverID
|
|
FROM
|
|
`CarRegistration` cr
|
|
WHERE
|
|
cr.driverID NOT IN (SELECT id FROM driver);
|
|
|
|
|
|
|
|
----- driver
|
|
SELECT phone,email,name_arabic,national_number FROM `driver` WHERE national_number ='29209290106392'
|
|
ORDER BY `driver`.`created_at` DESC
|
|
|
|
|
|
|
|
------- driver work
|
|
|
|
SELECT
|
|
COUNT(`car_locations`.driver_id),
|
|
driver.id,
|
|
driver.phone,
|
|
driver.name_arabic
|
|
FROM
|
|
`car_locations`
|
|
LEFT JOIN driver ON driver.id = car_locations.driver_id
|
|
WHERE
|
|
`car_locations`. created_at > TIMESTAMP(
|
|
DATE_SUB(NOW(), INTERVAL 10 MINUTE))
|
|
GROUP BY
|
|
driver_id
|
|
ORDER BY
|
|
COUNT(driver_id)
|
|
DESC
|
|
;
|
|
|
|
|
|
------ get count of year cars
|
|
SELECT
|
|
CASE
|
|
WHEN `year` > 2017 THEN 'After 2017'
|
|
WHEN `year` BETWEEN 2000 AND 2016 THEN '2000-2016'
|
|
ELSE 'Before 2000'
|
|
END AS `year_group`,
|
|
COUNT(*) AS `count`
|
|
FROM `carPlateEdit`
|
|
GROUP BY `year_group`
|
|
ORDER BY `year_group` ASC;
|
|
|
|
|
|
|
|
-- delete location 1 day
|
|
|
|
DELETE
|
|
FROM
|
|
`car_locations`
|
|
WHERE
|
|
DATE(`created_at`) < CURDATE();
|
|
SELECT
|
|
COUNT(`car_locations`.driver_id),
|
|
driver.id,
|
|
driver.phone,
|
|
driver.name_arabic
|
|
FROM
|
|
`car_locations`
|
|
LEFT JOIN driver ON driver.id = car_locations.driver_id
|
|
WHERE
|
|
`car_locations`.created_at > TIMESTAMP(
|
|
DATE_SUB(NOW(), INTERVAL 10 MINUTE))
|
|
GROUP BY
|
|
driver_id
|
|
ORDER BY
|
|
COUNT(driver_id)
|
|
DESC
|
|
;
|
|
|
|
|
|
-- driver register by hours for employee
|
|
SELECT
|
|
d.`maritalStatus` AS NAME,
|
|
HOUR(d.created_at) AS hour,
|
|
COUNT(*) AS `count`
|
|
FROM
|
|
`driver` d
|
|
WHERE
|
|
d.`maritalStatus` IN ('Maryam', 'rawda', 'Mena')
|
|
AND DATE(d.created_at) = CURDATE()
|
|
GROUP BY
|
|
d.`maritalStatus`, HOUR(d.created_at)
|
|
ORDER BY
|
|
hour, `count` DESC;
|
|
|
|
|
|
|
|
|
|
|
|
---- monthly
|
|
SELECT
|
|
MONTH(d.created_at) AS month,
|
|
COUNT(d.id) AS `count`
|
|
FROM
|
|
`driver` d
|
|
WHERE
|
|
YEAR(d.created_at) = YEAR(CURDATE())
|
|
GROUP BY
|
|
MONTH(d.created_at)
|
|
ORDER BY
|
|
month,
|
|
`count`
|
|
DESC
|
|
;
|
|
-----AI request
|
|
|
|
|
|
SELECT
|
|
f.id,
|
|
f.passengerId,
|
|
f.feedBack,
|
|
f.datecreated,
|
|
r.id AS ride_id,
|
|
r.start_location,
|
|
r.end_location,
|
|
r.date,
|
|
r.price,
|
|
r.status,
|
|
r.paymentMethod,
|
|
r.distance,
|
|
r.carType,
|
|
r.rideTimeFinish,
|
|
r.rideTimeStart,
|
|
r.DriverIsGoingToPassenger,
|
|
COUNT(rp.id) AS countRateFromPassengerToDrivers,
|
|
COUNT(rd.id) AS countRateFromDriverToPassengers,
|
|
MAX(rp.rating) AS rateFromPassengerToDriver,
|
|
MAX(rd.rating) AS rateFromDriversToPassengers,
|
|
MAX(rp.comment) AS commentFromPassengerToDriver,
|
|
MAX(rd.comment) AS commentFromDriverToPassenger
|
|
FROM
|
|
`feedBack` f
|
|
LEFT JOIN ride r ON
|
|
r.passenger_id = f.passengerId
|
|
LEFT JOIN ratingPassenger rp ON
|
|
rp.passenger_id = r.passenger_id
|
|
LEFT JOIN ratingDriver rd ON
|
|
rd.driver_id = r.driver_id
|
|
WHERE
|
|
r.passenger_id = '113172279072358305645'
|
|
GROUP BY
|
|
f.id, f.passengerId, f.feedBack, f.datecreated,
|
|
r.id, r.start_location, r.end_location, r.date, r.price,
|
|
r.status, r.paymentMethod, r.distance, r.carType,
|
|
r.rideTimeFinish, r.rideTimeStart, r.DriverIsGoingToPassenger
|
|
ORDER BY
|
|
r.date DESC
|
|
LIMIT 1; |