Xpoint
   [напомнить пароль]

Сортировка без повторов

Метки: [без меток]
[арх]
2005-07-22 13:14:48 [обр] rav[досье]

имеется таблица отзывов
id — идентификатор отзыва
id_res- идентификатор ресурса
text — текст отзыва
date_post — дата добавления отзыва

Как составить запрос отсортированый по колличеству отзывов или по дате последнего отзыва без повторов id_res

т.е. на выходе примерно такое

id_res1 | колич отзывов | дата последнего отзыва
id_res2 | колич отзывов | дата последнего отзыва
id_res3 | колич отзывов | дата последнего отзыва
id_res4 | колич отзывов | дата последнего отзыва
id_res5 | колич отзывов | дата последнего отзыва

пытался сделать запрос для сортировки по дате
SELECT date_posting, id_resource, COUNT(*) FROM Opinions GROUP BY id_resource ORDER BY date_posting
выдает ошибку
[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'date_posting' as part of an aggregate function.

спустя 1 час 3 минуты [обр] Денис Гетман(5/228)[досье]
SELECT date_posting, id_resource, COUNT(*) FROM Opinions GROUP BY date_posting, id_resource
спустя 4 минуты [обр] GRAy(8/259)[досье]

Более соответсвует формулировке:

select id_resource, max(date_posting), count(*) from opinions group by id_resource order by 2

order by 2 это значит сортировка по второй колонке, может не поддерживаться вашей СУБД, тогда можно вложенным селектом сделать.

спустя 1 час 20 минут [обр] rav[досье]
да но ведь группируя по нескольким полям я потеряю уникальность по полю id_resource, а мне это то и надо было
иначе у меня получается список вот такой
id_res1
id_res1
id_res2
id_res3
id_res1
id_res4
id_res3
а мне надо
id_res1
id_res2
id_res3
id_res4
спустя 4 часа 37 минут [обр] GRAy(8/259)[досье]
rav[досье] а мой пример вас чем не устраивает?
спустя 2 дня 16 часов [обр] rav[досье]
можете поподробнее написать, как мне сделать вложенный запрос, буду очень признателен, т.к. я еще только начинающий
спустя 4 часа 15 минут [обр] GRAy(8/259)[досье]
Ну вот так например:
select * 
from (
  select id_resource, max(date_posting) date_posting, count(*) amount
  from opinions group by id_resource)
order by posting
спустя 17 минут [обр] GRAy(8/259)[досье]
Очепятка, сорри
...
order by date_posting
...
спустя 50 минут [обр] rav[досье]

Составил вот такой запрос
select * from (select id_resource from opinions group by id_resource) order by date_posting
на Ваш ругался на синтаксис

и получил такой ответ :-(
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

спустя 5 минут [обр] rav[досье]
если делаю такой
select * from (select id_resource, date_posting from opinions group by id_resource) order by date_posting
то
[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'date_posting' as part of an aggregate function.
спустя 4 минуты [обр] GRAy(8/259)[досье]

Чушь пишете - потому и ругается сделайте copy-paste следующего кода:

select * 
from (
  select id_resource, max(date_posting) date_posting, count(*) amount
  from opinions group by id_resource
)
order by date_posting

Поймите - если в селекте есть группировка, то колонки либо являются аргументом групповой функции (т.е. max, count, sum и т.д.) либо ОБЯЗАНЫ быть перечислены в предложении group by.

спустя 15 часов [обр] rav[досье]
да говорю же - ругается он на это
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'max(date_posting) date_posting'.
спустя 48 минут [обр] GRAy(8/259)[досье]
а так?
select * 
from (
  select id_resource as id_resource, max(date_posting) as date_posting, count(*) as amount
  from opinions group by id_resource
)
order by date_posting
спустя 1 день [обр] rav[досье]
[Microsoft][ODBC Microsoft Access Driver] Circular reference caused by alias 'date_posting' in query definition's SELECT list
спустя 2 часа 45 минут [обр] GRAy(8/259)[досье]
Ох уж блин мне этот микрософт ;)
select * 
from (
  select id_resource as id_res, max(date_posting) as date_post, count(*) as amount
  from opinions group by id_resource
)
order by date_post
Powered by POEM™ Engine Copyright © 2002-2005