<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - COUNT i GROUP BY daje puste pola]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=1393&amp;type=atom"/>
	<updated>2012-09-21T22:20:00Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=1393</id>
		<entry>
			<title type="html"><![CDATA[Odp: COUNT i GROUP BY daje puste pola]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3722#p3722"/>
			<content type="html"><![CDATA[Dziękuję, dokładnie o to chodziło.
Pozdrawiam.]]></content>
			<author>
				<name><![CDATA[lasoty]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1424</uri>
			</author>
			<updated>2012-09-21T22:20:00Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3722#p3722</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: COUNT i GROUP BY daje puste pola]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3719#p3719"/>
			<content type="html"><![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]]></content>
			<author>
				<name><![CDATA[c_michal]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=627</uri>
			</author>
			<updated>2012-09-20T17:45:55Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3719#p3719</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[COUNT i GROUP BY daje puste pola]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3718#p3718"/>
			<content type="html"><![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?]]></content>
			<author>
				<name><![CDATA[lasoty]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1424</uri>
			</author>
			<updated>2012-09-20T15:52:16Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3718#p3718</id>
		</entry>
</feed>
