Postgresql считать подстроку с предложением where - PullRequest
0 голосов
/ 28 июня 2010

Я пытаюсь подсчитать подстроку, сопоставляя другие значения из другого столбца.Следующее утверждение дает мне синтаксическую ошибку в предложении where.

Возможно ли даже следующее и каков правильный синтаксис?

select address,
       datacenter,
       ifdesc,
       count(substring(ifdesc, 'Ethernet0/*') where ifadminstatus = '1' and ifoperstatus = '1')  over (partition by address) mod0_uu,
       count(substring(ifdesc, 'Ethernet0/*') where ifadminstatus = '2') over (partition by address) mod0_ad
  from ifstatus;

1 Ответ

2 голосов
/ 29 июня 2010

Как то так?

select address,
       datacenter,
       ifdesc,
       count(case when ifadminstatus = '1' and ifoperstatus = '1' then substring(ifdesc, 'Ethernet0/*') else null end )  over (partition by address) mod0_uu,
       count(case when ifadminstatus = '2' then substring(ifdesc, 'Ethernet0/*') else null end ) over (partition by address) mod0_ad
  from ifstatus  WHERE ifadminstatus in ('1','2');
...