Delphi Can
Yaklasan Güne göre Gruplamak - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Veri Tabanı (https://www.delphican.com/forumdisplay.php?fid=4)
+--- Forum: Diğer Veri Tabanları (https://www.delphican.com/forumdisplay.php?fid=18)
+--- Konu Başlığı: Yaklasan Güne göre Gruplamak (/showthread.php?tid=5478)

Sayfalar: 1 2


Yaklasan Güne göre Gruplamak - 41linea41 - 30-11-2020

Merhaba

PostgreSql de TARIH isimli kolondaki tarihi simdiki tarihe gore
- 7 gunden az kalan
- 15 gunden az kalan
- 30 gunden az kalan
- 60 gunden az kalan

satırların sayısını(count) gormek ıstıyorum. Gruplama fonksıyonunu yazamadım.

 7 gunden az kalan 12 adet
15 gunden az kalan 10 adet ...

seklinde bir sql sorgusu yazmalıyım.

Iyı Calismalar.


Yaklasan Güne göre Gruplamak - meko - 30-11-2020

merhaba,

dört ayrı sql yapıp union ile kullanabilirsin


Cvp: Yaklasan Güne göre Gruplamak - 41linea41 - 30-11-2020

(30-11-2020, Saat: 19:51)meko Adlı Kullanıcıdan Alıntı: merhaba,

dört ayrı sql yapıp union ile kullanabilirsin

SELECT count("GEBELIK"."TAHMINI_DOGUM") as "yedigun" FROM "GEBELIK"
GROUP BY (("GEBELIK"."TAHMINI_DOGUM" - current_date) < 7)
UNION
SELECT count("GEBELIK"."TAHMINI_DOGUM") as "otuzgun" FROM "GEBELIK"
GROUP BY ("GEBELIK"."TAHMINI_DOGUM"-30)

dogru sonuca ulasamiyorum hatam nerede?


Cvp: Yaklasan Güne göre Gruplamak - forumcuali - 30-11-2020

postgresql de nasıl bilmiorum ama ms sqlde grupladığınız verileri şarta göre listelemek için " HAVING" deyimi kullanılır.

örnek:
Kod:
SELECT birim, AVG(maas) AS 'Maaş ortalaması'
FROM personel
GROUP BY birim
HAVING MAX(maas)>1200;



Cvp: Yaklasan Güne göre Gruplamak - 41linea41 - 30-11-2020

(30-11-2020, Saat: 20:20)forumcuali Adlı Kullanıcıdan Alıntı: postgresql de nasıl bilmiorum ama ms sqlde grupladığınız verileri şarta göre listelemek için " HAVING" deyimi kullanılır.

örnek:
Kod:
SELECT birim, AVG(maas) AS 'Maaş ortalaması'
FROM personel
GROUP BY birim
HAVING MAX(maas)>1200;

oZ5MRq.png
SELECT count("GEBELIK"."TAHMINI_DOGUM") as "yedigun" FROM "GEBELIK"
GROUP BY "GEBELIK"."TAHMINI_DOGUM" 
HAVING (("GEBELIK"."TAHMINI_DOGUM" - current_date) < 7)
UNION
SELECT count("GEBELIK"."TAHMINI_DOGUM") as "otuzgun" FROM "GEBELIK"
GROUP BY ("GEBELIK"."TAHMINI_DOGUM")
HAVING (("GEBELIK"."TAHMINI_DOGUM"-current_date) <30)
HgldSW.png
yine tek satır sonuc dondu.


Cvp: Yaklasan Güne göre Gruplamak - forumcuali - 30-11-2020

şu şekilde  deneyebilirmisiniz:

kaynak: https://www.postgresqltutorial.com/postgresql-having/


Kod:
SELECT count("GEBELIK"."TAHMINI_DOGUM") as "yedigun",("GEBELIK"."TAHMINI_DOGUM" - current_date) FROM "GEBELIK"
GROUP BY "GEBELIK"."TAHMINI_DOGUM"
HAVING (("GEBELIK"."TAHMINI_DOGUM" - current_date) < 7)
UNION
SELECT count("GEBELIK"."TAHMINI_DOGUM") as "otuzgun",("GEBELIK"."TAHMINI_DOGUM"-current_date) FROM "GEBELIK"
GROUP BY ("GEBELIK"."TAHMINI_DOGUM")
HAVING (("GEBELIK"."TAHMINI_DOGUM"-current_date) <30)
not: postgre sql sytax'ını tam bilmiyorum syntax hatası olabilir...


Cvp: Yaklasan Güne göre Gruplamak - 41linea41 - 30-11-2020

(30-11-2020, Saat: 20:43)forumcuali Adlı Kullanıcıdan Alıntı: şu şekilde  deneyebilirmisiniz:

kaynak: https://www.postgresqltutorial.com/postgresql-having/


Kod:
SELECT count("GEBELIK"."TAHMINI_DOGUM") as "yedigun",("GEBELIK"."TAHMINI_DOGUM" - current_date) FROM "GEBELIK"
GROUP BY "GEBELIK"."TAHMINI_DOGUM"
HAVING (("GEBELIK"."TAHMINI_DOGUM" - current_date) < 7)
UNION
SELECT count("GEBELIK"."TAHMINI_DOGUM") as "otuzgun",("GEBELIK"."TAHMINI_DOGUM"-current_date) FROM "GEBELIK"
GROUP BY ("GEBELIK"."TAHMINI_DOGUM")
HAVING (("GEBELIK"."TAHMINI_DOGUM"-current_date) <30)
not: postgre sql sytax'ını tam bilmiyorum syntax hatası olabilir...
her bir satırın kalan gununu dondurdu.
RONwRf.png


Cvp: Yaklasan Güne göre Gruplamak - forumcuali - 30-11-2020

Kod:
SELECT "GEBELIK"."TAHMINI_DOGUM",count(("GEBELIK"."TAHMINI_DOGUM" - current_date)) as "yedigun" FROM "GEBELIK"
GROUP BY "GEBELIK"."TAHMINI_DOGUM"
HAVING (("GEBELIK"."TAHMINI_DOGUM" - current_date) < 7)
UNION
SELECT "GEBELIK"."TAHMINI_DOGUM",count(("GEBELIK"."TAHMINI_DOGUM"-current_date))as "otuzgun" FROM "GEBELIK"
GROUP BY ("GEBELIK"."TAHMINI_DOGUM")
HAVING (("GEBELIK"."TAHMINI_DOGUM"-current_date) <30)
 yukardakine benzer bişey deniyorum mssqlde çalışıyor ama postgre de bilgim yok ....


Cvp: Yaklasan Güne göre Gruplamak - 41linea41 - 30-11-2020

(30-11-2020, Saat: 20:52)forumcuali Adlı Kullanıcıdan Alıntı:
Kod:
SELECT "GEBELIK"."TAHMINI_DOGUM",count(("GEBELIK"."TAHMINI_DOGUM" - current_date)) as "yedigun" FROM "GEBELIK"
GROUP BY "GEBELIK"."TAHMINI_DOGUM"
HAVING (("GEBELIK"."TAHMINI_DOGUM" - current_date) < 7)
UNION
SELECT "GEBELIK"."TAHMINI_DOGUM",count(("GEBELIK"."TAHMINI_DOGUM"-current_date))as "otuzgun" FROM "GEBELIK"
GROUP BY ("GEBELIK"."TAHMINI_DOGUM")
HAVING (("GEBELIK"."TAHMINI_DOGUM"-current_date) <30)
 yukardakine benzer bişey deniyorum mssqlde çalışıyor ama postgre de bilgim yok ....

bu kodla sonuc donuyor ama gruplayarak yapamadim:
SELECT count("GEBELIK"."TAHMINI_DOGUM") AS yedigun FROM "GEBELIK"
where ("GEBELIK"."TAHMINI_DOGUM" - current_date) <7
UNION
SELECT count("GEBELIK"."TAHMINI_DOGUM") as otuzgun FROM "GEBELIK"
where ("GEBELIK"."TAHMINI_DOGUM" - current_date) <30
HjDKH8.png


Cvp: Yaklasan Güne göre Gruplamak - serdar - 30-11-2020

Merhaba mssql de şöyle olabilir

SELECT COUNT(IIF(DATEDIFF(DAY,t.tarih,(cast(getdate() as date)))<7 ,1,NULL)) AS '7_GUNDEN_AZ_KALAN',
       COUNT(IIF(DATEDIFF(DAY,t.tarih,(cast(getdate() as date)))<15,1,NULL)) AS '15_GUNDEN_AZ_KALAN',
       COUNT(IIF(DATEDIFF(DAY,t.tarih,(cast(getdate() as date)))<30,1,NULL)) AS '30_GUNDEN_AZ_KALAN',
       COUNT(IIF(DATEDIFF(DAY,t.tarih,(cast(getdate() as date)))<60,1,NULL)) AS '60_GUNDEN_AZ_KALAN'
FROM tablom as t