Как я могу отфильтровать повторяющиеся записи в моем наборе данных с суммой нуля - PullRequest
0 голосов
/ 20 февраля 2019

Ниже выделены дубликаты данных, которые имеют другое trip_total_amount.Я хочу, чтобы они получили результаты моего запроса, поскольку их сумма равна нулю.

Это мой запрос для получения этих данных:

SELECT * FROM efleet_copy AS e1
INNER JOIN
(SELECT mta_id, COUNT(mta_id) FROM efleet_copy WHERE EXTRACT(MONTH from service_date) = 02
  AND mta_id LIKE '_________'
 GROUP BY mta_id HAVING COUNT(mta_id) > 1) AS e2
ON e1.mta_id = e2.mta_id
WHERE EXTRACT(MONTH from service_date) = 02
ORDER BY e1.mta_id ASC, ride_id ASC, trip_number ASC;

data set

1 Ответ

0 голосов
/ 20 февраля 2019

Попробуйте следующим образом:

with cte0 as 
(
    SELECT * FROM efleet_copy AS e1
    INNER JOIN
    (SELECT mta_id, COUNT(mta_id) FROM efleet_copy WHERE EXTRACT(MONTH from service_date) = 02
      AND mta_id LIKE '_________'
     GROUP BY mta_id HAVING COUNT(mta_id) > 1) AS e2
    ON e1.mta_id = e2.mta_id
    WHERE EXTRACT(MONTH from service_date) = 02
    ORDER BY e1.mta_id ASC, ride_id ASC, trip_number ASC
)
SELECT * from cte0 c
WHERE not exists (
    SELECT 1 FROM CTE0 ci
    WHERE c.ride_id = ci.ride_id 
    GROUP BY ride_id 
    having sum(trip_total_amount) = 0 
)
...