sql dotaz Počet řádků na ID výběrem rozsah mezi 2 daty min v různých sloupcích

hlasů
-1
       temp
|id|received  |changed   |
|33|2019-02-18|2019-11-18|
|33|2019-08-02|2019-09-18|
|33|2019-12-27|2019-12-18|
|18|2019-07-14|2019-10-18|
|50|2019-03-20|2019-05-26|
|50|2019-01-19|2019-06-26|

Dále jen ‚dočasné‘ tabulka zobrazuje uživatele, kteří obdrželi žádost o činnosti. Uživatel může udělat více požadavků. Proto se dostal sloupec obsahuje více dat, které ukazují, kdy byl přijat žádosti. Dále jen ‚změněné‘ tabulka ukazuje, kdy došlo ke změně stavu. Existují také více hodnot pro něj. Potřeba najít hraběte z požadavků na uživatele mezi MIN (přijaté) datum a MIN (změněno) datum Očekávaný výsledek by měl vypadat takto: - třetí řady Id- 33 by neměl být vybrán, protože datem dodání je po změněn datum.

|id|total_requests_sent|
|33|2                  |
|18|1                  |
|50|2                  |


Zkoušel Vytvoření 2 CTE je pro obě hodnoty MIN data a přidal se k původnímu

Položena 14/02/2020 v 00:03
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

I může být opravdu nad-zjednodušení váš úkol, ale ne něco jako tuto práci?

select
  t.id, count (*) as total_requests_sent
from
  temp t
  join temp2 t2 on
    t.id = t2.id
where
  t.received between t2.min_received and t2.min_changed
group by
  t.id

Domnívám se, že výstup bude odpovídat váš příklad v případě použití jste uvedli, ale s omezeným datové sady je těžké být jistý.

Odpovězeno 14/02/2020 v 02:28
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more