2016-09-02 1 views
-1
SELECT * 
FROM 
(SELECT 
"public".steponesection.datesection, 
"public".steponesection."Trade Price", 
max ("public".steponesection."Trade Volume") OVER (partition by "public".steponesection.datesection) as max_Volm 

FROM "public".steponesection)t 

WHERE "public".steponesection."Trade Volume" = max_Volm 

Результаты в этой ошибки:Я хочу максимальный объем каждого datesection, но когда я запускаю его показать

[Err] ERROR: missing FROM-clause entry for table "steponesection" 
LINE 10: WHERE "public".steponesection."Trade Volume" = max_Volm 

    ^

ответ

0

Сообщение об ошибке довольно ясно: пункт where не может ссылаться на steponesection, как на этом уровне из запроса нет идентификатора с этим именем. Полученная таблица называется t, и это то, что вам нужно использовать.

Вы также не выбрали "Trade Volume" во внутреннем запросе, поэтому он не доступен во внешнем уровне:

SELECT * 
FROM (
    SELECT "public".steponesection.datesection, 
      "public".steponesection."Trade Price", 
      "public".steponesection."Trade Volume", --<< missing 
      max ("public".steponesection."Trade Volume") OVER (partition by "public".steponesection.datesection) as max_volm 
    FROM "public".steponesection 
) t 
WHERE t."Trade Volume" = t.max_volm --<< use the alias of the derived table 

Я бы настоятельно рекомендовал, чтобы избежать идентификаторы в кавычках, как "Trade Price". У них гораздо больше проблем в долгосрочной перспективе, тогда они стоят