| From: | Emre Hasegeli <hasegeli(at)tart(dot)com(dot)tr> |
|---|---|
| To: | kingemkurdam <kingemkurdam(at)gmail(dot)com> |
| Cc: | pgsql-tr-genel(at)postgresql(dot)org |
| Subject: | Re: [pgsql-tr-genel] Mysql'dan Postgresql geçerken aldığım hata |
| Date: | 2011-04-06 12:36:21 |
| Message-ID: | BANLkTikE+itLFQOzMTxJ1pgUF-4EBz9PHw@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-tr-genel |
2011/4/6 kingemkurdam <kingemkurdam(at)gmail(dot)com>:
> Veritabanı olarak Postgresql'e geçmeye karar verdim.Fakat mysql'da yazdığım
> sql sorguları Postgresql'de çalışmıyor.Şöyleki zorunlu olarak colomları
> gruplamamı istiyor.
>
> Mysql'da çalışan sorgu
>
> http://pastebin.com/PCQYj5PX
>
> Fakat bu sorguyu postgresql'de çalıştırdığımda
>
> SQL error:
> ERROR: column "mod_haber.ad" must appear in the GROUP BY clause or be used
> in an aggregate function
> LINE 3: mod_haber.ad AS ad,
>
>
> Şeklinde hata alıyorum tüm colomları sırayla gruplayınca hata ortadan
> kalkıyor yani şöyle.
>
> http://pastebin.com/0cRX40LQ
>
> Fakat bu şekildede istediğim sonuca ulaşamıyorum.
> Bu sorunu nasıl aşabilirim acaba?
>
MySQL'in GROUP BY'da bulunmayan kolonları seçebilmesi SQL ölçününe
uymayan, tutarsız bir davranış. İstediğiniz sonucun ne olduğunu
açılmalısınız. Örneğin istediğiniz sonuç her gün en çok okunan haberin
bütün bilgilerini seçmekse sorgunuzu aşağıdaki biçimde yazabilirsiniz:
SELECT *
FROM "Haber"
WHERE ("tarih",
"okunmaSayısı") IN (SELECT "tarih",
max("okunmaSayısı")
FROM "Haber"
GROUP BY "tarih");
| From | Date | Subject | |
|---|---|---|---|
| Next Message | kingemkurdam | 2011-04-06 14:31:48 | Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Mysql'dan Postgresql geçerken aldığım hata |
| Previous Message | kingemkurdam | 2011-04-06 08:48:01 | Mysql'dan Postgresql geçerken aldığım hata |