Re: [pgsql-tr-genel] Mysql'dan Postgresql geçerken aldığım hata

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");

In response to

Responses

Browse pgsql-tr-genel by date

  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