GOOGLE ADS

Dienstag, 12. April 2022

Abfrage, um die Anzahl der Fahrer abzurufen, die in den letzten 7 Tagen keine Fahrten unternommen haben, von ihrer letzten Fahrt für das Land =150

Ich habe zwei Tabellen Fact_trips (tb) dim_city(tb)

Driver I'd. City id
Trip id country id
Rider I'd
Time stamp
City id

Die Frage ist, Fahrer, die in den letzten 7 Tagen keine Fahrt unternommen haben, von ihrer letzten Fahrt in Land 150 abzuholen


Lösung des Problems

Wir können prüfen, ob der driver_is in einer Unterabfrage ist, um die Fahrer zu erhalten, die in den letzten 7 Tagen in einer Stadt im Land 150 waren, und sie mit ausschließen not in.

create table Fact_trips (Driver_id int, Trip_id int, Rider_id int, Time date, city_id int);
create table dim_city (City_id int, country_id int);
insert into dim_city values
(1,150),(2,250);
insert into Fact_trips values
(1,1,1,'2022-04-01',1),
(3,1,1,'2022-04-10',2),
(2,1,1,'2022-04-08',1);
GO


5 Reihen betroffen

select t.driver_id 
from Fact_trips t
where t.driver_id not in
(
select f.driver_id
from fact_trips f
join dim_city c
on f.city_id = c.city_id
where [Time] >= DATEADD(day,-7, GETDATE())
and country_id = 150
)

GO

| Fahrer-ID | 
| --------: |
| 1 |
| 3 |

select f.driver_id
from fact_trips f
join dim_city c
on f.city_id = c.city_id
where [Time] >= DATEADD(day,-7, GETDATE())
and country_id = 150
GO

| Fahrer-ID | 
| --------: |
| 2 |

db<>fiddle hier

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...