Re: What is the alternate of FILTER below Postgresql 9.4 ? - Mailing list pgsql-general

From Pavel Stehule
Subject Re: What is the alternate of FILTER below Postgresql 9.4 ?
Date
Msg-id CAFj8pRDrTaGC_Bsa-bfadts7b2z9EeFdH=Pe2Ki7XpdsvGMKuQ@mail.gmail.com
Whole thread Raw
In response to What is the alternate of FILTER below Postgresql 9.4 ?  (Arup Rakshit <aruprakshit@rocketmail.com>)
Responses Re: What is the alternate of FILTER below Postgresql 9.4 ?  (Arup Rakshit <aruprakshit@rocketmail.com>)
List pgsql-general
Hi

2015-02-24 17:02 GMT+01:00 Arup Rakshit <aruprakshit@rocketmail.com>:
Hi,

Please look at my query :

[shreyas@rails_app_test (master)]$ rails db
psql (9.4.1)
Type "help" for help.

app_development=# select id, location, name from people;
 id | location | name
----+----------+------
  2 | X        | foo
  3 | X        | foo
  4 | Y        | foo
(3 rows)

app_development=# SELECT COUNT(id) FILTER(WHERE lower(location) != 'x') AS Non_X_loc, COUNT(id) FILTER (WHERE lower(location) = 'x') AS X_loc FROM "people";
 non_x_loc | x_loc
-----------+-------
         1 |     2
(1 row)

This *FILTER* method is available from 9.4, How can I get the same output below 9.4 version ?


use SQL CASE

SELECT COUNT(CASE lower(location) <> 'x' THEN 1 END), ...

attention: "lower" function is slow - so don't use it if it is not necessary

Regards

Pavel Stehule
 
--
================
Regards,
Arup Rakshit
================
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.

--Brian Kernighan


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

pgsql-general by date:

Previous
From: Arup Rakshit
Date:
Subject: What is the alternate of FILTER below Postgresql 9.4 ?
Next
From: Andreas Kretschmer
Date:
Subject: Re: What is the alternate of FILTER below Postgresql 9.4 ?