我有快速的问题。
我想计算具有相同数字的行。这就是我得到的:
所以我有4行,相同的数字(59 b)和count column
我得到的。我需要得到4
而不是1
,因为我有4行相同的数字。
这是我的sql
:
SELECT (z.miasto ||' '|| z.ulica ||' '|| z.nr_dom) as adres, (z.sym ||z.sym_ul||' '|| z.nr_dom) as symbol, zd.status, zd.id_administrator, z.uwagi,
COUNT(*) as liczba_osob
FROM zgloszenia as z
LEFT JOIN zgl_dzialamy AS zd ON (z.sym ||z.sym_ul||' '|| z.nr_dom) = (zd.sym ||zd.sym_ul||' '|| zd.nr_budynku)
WHERE status < 5
group by adres, symbol, zd.id_administrator, z.uwagi, zd.status
谁能告诉我我做错了什么?
COUNT不起作用的原因是因为分组值无法聚合。它们似乎彼此不同(可能是黑色的值:z.uwagi)。
您可以做的是一起选择非DISTINCT值并改为COUNT。 COUNTing完成后,您可以将此VALUE加入到您的表中。或者,您可以将此列聚合到表中作为数组或json对象。
SELECT
(z.miasto ||' '|| z.ulica ||' '|| z.nr_dom) as adres,
(z.sym ||z.sym_ul||' '|| z.nr_dom) as symbol,
zd.status,
zd.id_administrator,
-- z.uwagi, -- VALUE IS DISTINCT
COUNT(*) as liczba_osob
FROM zgloszenia as z
LEFT JOIN zgl_dzialamy AS zd ON (z.sym ||z.sym_ul||' '|| z.nr_dom) = (zd.sym ||zd.sym_ul||' '|| zd.nr_budynku)
WHERE status < 5
group by
adres,
symbol,
zd.id_administrator,
-- z.uwagi,
zd.status