Re: Select statement with except clause

Поиск
Список
Период
Сортировка
От David Johnston
Тема Re: Select statement with except clause
Дата
Msg-id 1369334190307-5756661.post@n5.nabble.com
обсуждение исходный текст
Ответ на Select statement with except clause  (JORGE MALDONADO <jorgemal1960@gmail.com>)
Ответы Re: Select statement with except clause  (JORGE MALDONADO <jorgemal1960@gmail.com>)
Список pgsql-sql
JORGE MALDONADO wrote
> How does the EXCEPT work? Do fields should be identical?
> I need the difference to be on the first 3 fields.

Except operates over the entire tuple so yes all fields are evaluated and,
if they all match, the row from the "left/upper" query is excluded.

If you need something different you can use some variation of:
IN
EXISTS
NOT IN
NOT EXISTS

with a sub-query (correlated or uncorrelated as your need dictates).

For example:

SELECT col1, col2, col3, sum(col4)
FROM tbl
WHERE (col1, col2, col3) NOT IN (SELECT col1, col2, col3 FROM tbl2) -- not
correlated
GROUP BY col1, col2, col3

SELECT col1, col2, col3, sum(col4)
FROM tbl
WHERE NOT EXISTS ( SELECT 1 FROM tbl AS tbl2 WHERE --make sure to alias the sub-query table
if it matches the outer reference (tbl.col1, tbl.col2, tbl.col3) = (tbl2.col1, tbl2.col2, tbl2.col3)
) -- correlated; reference "tbl" within the query inside the where clause
GROUP BY col1, col2, col3

I do not follow your example enough to provide a more explicit
example/solution but this should at least help point you in the right
direction.

David J.









--
View this message in context:
http://postgresql.1045698.n5.nabble.com/Select-statement-with-except-clause-tp5756658p5756661.html
Sent from the PostgreSQL - sql mailing list archive at Nabble.com.



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

Предыдущее
От: JORGE MALDONADO
Дата:
Сообщение: Select statement with except clause
Следующее
От: JORGE MALDONADO
Дата:
Сообщение: Re: Select statement with except clause