Re: A SQL Question About distinct, limit, group by, having, aggregate

Поиск
Список
Период
Сортировка
От Lin Kun Hsin
Тема Re: A SQL Question About distinct, limit, group by, having, aggregate
Дата
Msg-id 20050331121514.M9051@cyut.edu.tw
обсуждение исходный текст
Ответ на A SQL Question About distinct, limit, group by, having, aggregate  ("林[鋅" <s9154083@cyut.edu.tw>)
Список pgsql-sql
Actually, i have a method to solve this problem.
But i really want to know, we have to write more statement to do one thing?


First step, we have to create 2 sequence. Let call them "foo" and "foo1".

create sequence foo;
create sequence foo1;

then, you can run below statement, and you will see the result that is we want.


select setval('foo',1);
select setval('foo1',1);
select id, score, class from (        select id, score, ph1.class , sequence1, sequence2, CASE WHEN ph1.cc > 5
THEN ph3.sequence + 4     ELSE ph3.sequence + ph1.cc - 1 END as tail from                 (select class, count(*) as cc
fromallscore group by class)         as ph1 join                     (select id, class, score, nextval('foo') as
sequence1,currval('foo') as
 
sequence2 from (select * from allscore order by class, score desc) as t2)        as ph2 on (ph1.class = ph2.class) join
           (select distinct on (class) class, nextval('foo1'), currval('foo1') as
 
sequence from (        select  id , score , class from allscore order by class, score desc) as t6)            as ph3 on
(ph2.class= ph3.class) order by ph1.class , score desc 
 
) as con where sequence2 <= tail;

--
http://alumni.cyut.edu.tw
Open WebMail Project (http://openwebmail.org)



В списке pgsql-sql по дате отправления:

Предыдущее
От: "Dinesh Pandey"
Дата:
Сообщение: Help - Oracle 9i to PostgreSQL SQL conversion
Следующее
От: "Greg Patnude"
Дата:
Сообщение: Re: New record position