first commit
This commit is contained in:
208
lib/models/sql
Normal file
208
lib/models/sql
Normal file
@@ -0,0 +1,208 @@
|
||||
-- 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;
|
||||
Reference in New Issue
Block a user