<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - COUNT i GROUP BY daje puste pola]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=1393</link>
		<description><![CDATA[Najświeższe odpowiedzi w COUNT i GROUP BY daje puste pola.]]></description>
		<lastBuildDate>Fri, 21 Sep 2012 22:20:00 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: COUNT i GROUP BY daje puste pola]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3722#p3722</link>
			<description><![CDATA[Dziękuję, dokładnie o to chodziło.
Pozdrawiam.]]></description>
			<author><![CDATA[dummy@example.com (lasoty)]]></author>
			<pubDate>Fri, 21 Sep 2012 22:20:00 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3722#p3722</guid>
		</item>
		<item>
			<title><![CDATA[Odp: COUNT i GROUP BY daje puste pola]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3719#p3719</link>
			<description><![CDATA[To chyba powinno wyglądać tak

SELECT 
  CASE 
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'kuj.-pom%' THEN 'kujawsko - pomorskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'war.-maz%' THEN 'warmińsko - mazurskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'podlaskie%' THEN 'podlaskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'pomorskie%' THEN 'pomorskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'dolnośląskie%' THEN 'dolnośląskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'lubelskie%' THEN 'lubelskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'wielkopolskie%' THEN 'wielkopolskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'mazowieckie%' THEN 'mazowieckie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'opolskie%' THEN 'opolskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'śląskie%' THEN 'śląskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'łódzkie%' THEN 'łódzkie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'świętokrzyskie%' THEN 'świętokrzyskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'zach.-pom%' THEN 'zachodnio - pomorskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'malopolskie%' THEN 'małopolskie'
    ELSE jednostki_organizacyjne.nazwa_skrocona 
  END, 
  SUM (case when jednostki_organizacyjne.nazwa_skrocona LIKE '%_dz' then 1 else 0 end) AS Dzieci,
  SUM (case when jednostki_organizacyjne.nazwa_skrocona LIKE '%_d' then 1 else 0 end) AS Dorosli
FROM 
  public.pacjenci, 
  public.przyjecia, 
  public.jednostki_organizacyjne
WHERE 
  przyjecia.id_jednostki_organizacyjnej = jednostki_organizacyjne.id AND
  przyjecia.id_pacjenta = pacjenci.id
  AND jednostki_organizacyjne.nazwa_skrocona LIKE '%ZDLR%'
GROUP BY CASE 
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'kuj.-pom%' THEN 'kujawsko - pomorskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'war.-maz%' THEN 'warmińsko - mazurskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'podlaskie%' THEN 'podlaskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'pomorskie%' THEN 'pomorskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'dolnośląskie%' THEN 'dolnośląskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'lubelskie%' THEN 'lubelskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'wielkopolskie%' THEN 'wielkopolskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'mazowieckie%' THEN 'mazowieckie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'opolskie%' THEN 'opolskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'śląskie%' THEN 'śląskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'łódzkie%' THEN 'łódzkie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'świętokrzyskie%' THEN 'świętokrzyskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'zach.-pom%' THEN 'zachodnio - pomorskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'malopolskie%' THEN 'małopolskie'
    ELSE jednostki_organizacyjne.nazwa_skrocona 
  END
ORDER BY nazwa_skrocona]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Thu, 20 Sep 2012 17:45:55 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3719#p3719</guid>
		</item>
		<item>
			<title><![CDATA[COUNT i GROUP BY daje puste pola]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3718#p3718</link>
			<description><![CDATA[Witam, mam problem który wygląda następująco: Mam zapytanie w postaci:

[code]
SELECT 
  CASE 
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'kuj.-pom%' THEN 'kujawsko - pomorskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'war.-maz%' THEN 'warmińsko - mazurskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'podlaskie%' THEN 'podlaskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'pomorskie%' THEN 'pomorskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'dolnośląskie%' THEN 'dolnośląskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'lubelskie%' THEN 'lubelskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'wielkopolskie%' THEN 'wielkopolskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'mazowieckie%' THEN 'mazowieckie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'opolskie%' THEN 'opolskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'śląskie%' THEN 'śląskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'łódzkie%' THEN 'łódzkie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'świętokrzyskie%' THEN 'świętokrzyskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'zach.-pom%' THEN 'zachodnio - pomorskie'
    WHEN jednostki_organizacyjne.nazwa_skrocona LIKE 'malopolskie%' THEN 'małopolskie'
    ELSE jednostki_organizacyjne.nazwa_skrocona 
  END, 
  COUNT (jednostki_organizacyjne.nazwa_skrocona LIKE '%_dz') AS Dzieci,
  COUNT (jednostki_organizacyjne.nazwa_skrocona LIKE '%_d') AS Dorosli
FROM 
  public.pacjenci, 
  public.przyjecia, 
  public.jednostki_organizacyjne
WHERE 
  przyjecia.id_jednostki_organizacyjnej = jednostki_organizacyjne.id AND
  przyjecia.id_pacjenta = pacjenci.id
  AND jednostki_organizacyjne.nazwa_skrocona LIKE '%ZDLR%'
GROUP BY jednostki_organizacyjne.nazwa_skrocona
ORDER BY nazwa_skrocona

[/code]

które daje w wyniku:
[code]
    nazwa_skrocona     | dzieci | dorosli 
-----------------------+--------+---------
 dolnośląskie          |      9 |       9
 dolnośląskie          |     64 |      64
 kujawsko - pomorskie  |     13 |      13
 kujawsko - pomorskie  |     45 |      45
 lubelskie             |     33 |      33
 lubelskie             |      5 |       5
 łódzkie               |     30 |      30
 łódzkie               |      4 |       4
 małopolskie           |      3 |       3
 małopolskie           |     59 |      59
 mazowieckie           |     57 |      57
 mazowieckie           |     14 |      14
 opolskie              |      8 |       8
 opolskie              |      6 |       6
 podlaskie             |      5 |       5
 śląskie               |     11 |      11
 śląskie               |      2 |       2
 świętokrzyskie        |     19 |      19
 warmińsko - mazurskie |     55 |      55
 warmińsko - mazurskie |      9 |       9
 wielkopolskie         |      4 |       4
 wielkopolskie         |     21 |      21
 zachodnio - pomorskie |      1 |       1
 zachodnio - pomorskie |     16 |      16
(24 rows)

[/code]
Problem polega na tym, że zlicza mi wszystkie występienia a nie te, o które mi chodzi (czyli gdzie w "nazwa_skrocona" na końcu występuje '_dz' lub '_d'.
Jak powinno wyglądać prawidłowe zapytanie?]]></description>
			<author><![CDATA[dummy@example.com (lasoty)]]></author>
			<pubDate>Thu, 20 Sep 2012 15:52:16 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3718#p3718</guid>
		</item>
	</channel>
</rss>
