Lists: | pgsql-general |
---|
From: | FC <lne-1mc8(at)myamail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | SQL question. |
Date: | 2005-06-01 14:40:48 |
Message-ID: | 6EE9301F-4C50-4160-9DC0-667826764A74@myamail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general |
Hello SQL Aces !
I want to do a select on a table distinct on linkid and sorted by
date. I have try this
SELECT DISTINCT ON (linkid) * FROM all_links
WHERE uid='2' AND DATE_TRUNC('day',read_date) = DATE_TRUNC('day',
TIMESTAMP '2005-06-01') ORDER BY linkid, read_date;
With this request "works" but the raws are sorted as I want. To have
the rows sorted by date I have done this using a temporary table and
that works exactly as I want.
CREATE LOCAL TEMP TABLE temp_links WITHOUT OIDS AS
SELECT DISTINCT ON (linkid) * FROM all_links
WHERE uid='2' AND DATE_TRUNC('day',read_date) = DATE_TRUNC('day',
TIMESTAMP '2005-06-01') ORDER BY linkid;
SELECT * from temp_links ORDER BY read_date DESC limit 100
My question is... How can I do the same thing in the more efficient
way and without using a temporary table. Since I am using PHP and the
table is not deleted at the end of the program because PHP keeps the
connection to the database open.
Thanks for any suggestions.
Fred
From: | "Jim Buttafuoco" <jim(at)contactbda(dot)com> |
---|---|
To: | FC <lne-1mc8(at)myamail(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: SQL question. |
Date: | 2005-06-01 15:20:08 |
Message-ID: | 20050601151852.M49412@contactbda.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general |
how about (untested)
select *
from
(
SELECT DISTINCT ON (linkid) *
FROM all_links
WHERE uid='2' AND DATE_TRUNC('day',read_date) = DATE_TRUNC('day',TIMESTAMP '2005-06-01')
ORDER BY linkid
) A
ORDER BY read_date DESC limit 100
---------- Original Message -----------
From: FC <lne-1mc8(at)myamail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Sent: Wed, 1 Jun 2005 16:40:48 +0200
Subject: [GENERAL] SQL question.
> Hello SQL Aces !
>
> I want to do a select on a table distinct on linkid and sorted by
> date. I have try this
>
> SELECT DISTINCT ON (linkid) * FROM all_links
> WHERE uid='2' AND DATE_TRUNC('day',read_date) = DATE_TRUNC('day',
> TIMESTAMP '2005-06-01') ORDER BY linkid, read_date;
>
> With this request "works" but the raws are sorted as I want. To have
> the rows sorted by date I have done this using a temporary table and
> that works exactly as I want.
>
> CREATE LOCAL TEMP TABLE temp_links WITHOUT OIDS AS
> SELECT DISTINCT ON (linkid) * FROM all_links
> WHERE uid='2' AND DATE_TRUNC('day',read_date) = DATE_TRUNC('day',
> TIMESTAMP '2005-06-01') ORDER BY linkid;
>
> SELECT * from temp_links ORDER BY read_date DESC limit 100
>
> My question is... How can I do the same thing in the more efficient
> way and without using a temporary table. Since I am using PHP and the
> table is not deleted at the end of the program because PHP keeps the
> connection to the database open.
>
> Thanks for any suggestions.
> Fred
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)
------- End of Original Message -------
From: | Martijn van Oosterhout <kleptog(at)svana(dot)org> |
---|---|
To: | FC <lne-1mc8(at)myamail(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: SQL question. |
Date: | 2005-06-01 15:32:59 |
Message-ID: | 20050601153255.GB29582@svana.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general |
On Wed, Jun 01, 2005 at 04:40:48PM +0200, FC wrote:
>
> Hello SQL Aces !
>
> I want to do a select on a table distinct on linkid and sorted by
> date. I have try this
How about a subquery?:
SELECT * FROM
( SELECT DISTINCT ON (linkid) * FROM all_links
WHERE uid='2' AND DATE_TRUNC('day',read_date) = DATE_TRUNC('day',
TIMESTAMP '2005-06-01') ORDER BY linkid, read_date) AS sub
ORDER BY read_date DESC limit 100;
Hope this helps,
> My question is... How can I do the same thing in the more efficient
> way and without using a temporary table. Since I am using PHP and the
> table is not deleted at the end of the program because PHP keeps the
> connection to the database open.
--
Martijn van Oosterhout <kleptog(at)svana(dot)org> http://svana.org/kleptog/
> Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> tool for doing 5% of the work and then sitting around waiting for someone
> else to do the other 95% so you can sue them.
From: | FC <lne-1mc8(at)myamail(dot)com> |
---|---|
To: | jim(at)contactbda(dot)com |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: SQL question. |
Date: | 2005-06-01 15:49:25 |
Message-ID: | F6A98A08-7E85-41A4-BEB3-AACFB7C9630B@myamail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general |
I need to remember to keep things simple...
Works fine, thanks.
Fred
On Jun 1, 2005, at 5:20 PM, Jim Buttafuoco wrote:
> how about (untested)
>
> select *
> from
> (
> SELECT DISTINCT ON (linkid) *
> FROM all_links
> WHERE uid='2' AND DATE_TRUNC('day',read_date) = DATE_TRUNC
> ('day',TIMESTAMP '2005-06-01')
> ORDER BY linkid
> ) A
> ORDER BY read_date DESC limit 100
>
>
> ---------- Original Message -----------
> From: FC <lne-1mc8(at)myamail(dot)com>
> To: pgsql-general(at)postgresql(dot)org
> Sent: Wed, 1 Jun 2005 16:40:48 +0200
> Subject: [GENERAL] SQL question.
>
>
>> Hello SQL Aces !
>>
>> I want to do a select on a table distinct on linkid and sorted by
>> date. I have try this
>>
>> SELECT DISTINCT ON (linkid) * FROM all_links
>> WHERE uid='2' AND DATE_TRUNC('day',read_date) = DATE_TRUNC('day',
>> TIMESTAMP '2005-06-01') ORDER BY linkid, read_date;
>>
>> With this request "works" but the raws are sorted as I want. To have
>> the rows sorted by date I have done this using a temporary table and
>> that works exactly as I want.
>>
>> CREATE LOCAL TEMP TABLE temp_links WITHOUT OIDS AS
>> SELECT DISTINCT ON (linkid) * FROM all_links
>> WHERE uid='2' AND DATE_TRUNC('day',read_date) = DATE_TRUNC('day',
>> TIMESTAMP '2005-06-01') ORDER BY linkid;
>>
>> SELECT * from temp_links ORDER BY read_date DESC limit 100
>>
>> My question is... How can I do the same thing in the more efficient
>> way and without using a temporary table. Since I am using PHP and the
>> table is not deleted at the end of the program because PHP keeps the
>> connection to the database open.
>>
>> Thanks for any suggestions.
>> Fred
>>
>> ---------------------------(end of
>> broadcast)---------------------------
>> TIP 2: you can get off all lists at once with the unregister command
>> (send "unregister YourEmailAddressHere" to
>> majordomo(at)postgresql(dot)org)
>>
> ------- End of Original Message -------
>
>
>
From: | FC <lne-1mc8(at)myamail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Character conversion... |
Date: | 2005-06-29 15:02:18 |
Message-ID: | 951C2B13-A59A-4D79-8929-9EBFEADD1FDD@myamail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general |
I have all my database encoded in ISO-8859-1 and I would like to
convert this database in UNICODE.
I have try this but with no success.
pg_dump dbase > foo.db
createdb -E UNICODE dbase
psql dbase < foo.db
I have also try to modify the value of client_encoding in the foo.db
file but that didn't fix my problem.
Thanks.
Fred