38 lines
697 B
SQL
38 lines
697 B
SQL
DROP TABLE abook;
|
|
|
|
CREATE TABLE
|
|
abook (count, name, address)
|
|
AS SELECT
|
|
DISTINCT ON(lower(address))
|
|
CASE WHEN
|
|
named.count IS NULL THEN 1
|
|
ELSE named.count
|
|
END,
|
|
CASE WHEN
|
|
named.name IS NULL THEN lower(unnamed.address)
|
|
ELSE named.name
|
|
END,
|
|
lower(unnamed.address)
|
|
FROM
|
|
contact unnamed
|
|
LEFT OUTER JOIN (
|
|
SELECT
|
|
DISTINCT ON (lower(address))
|
|
count(name),
|
|
name,
|
|
lower(address) AS laddr
|
|
FROM
|
|
contact
|
|
WHERE
|
|
name != ''
|
|
GROUP BY
|
|
lower(address), name
|
|
ORDER BY
|
|
lower(address),
|
|
count DESC,
|
|
name
|
|
) named
|
|
ON
|
|
named.laddr = lower(unnamed.address)
|
|
;
|