这是我的数据
Vehicle | Street | Number | Postcode
Car Fakestreet 3 0010NK
Motorbike Fakestreet 3 0010NK
Car Fakestreet 4 0010NK
Car Fakestreet 1 0010NK
Companycar Fakestreet 1 0010NK
我想计算每个邮政编码的唯一地址,所以我希望看到:
Postcode | Total_adresses
0010NK | 3
我认为这必须是一个简单的查询,所以我有这个:
SELECT Postcode, COUNT(*) AS total_adresses
FROM my_database
WHERE Postcode = '0010NK'
GROUP BY Postcode, Street, Number
但我得到了这个结果:
Postcode | total_adresses
0010NK | 2
0010NK | 2
0010NK | 1
我无法理解为什么它没有给我预期的结果。有什么想法吗?
答案 0 :(得分:1)
只汇总一列:
app.use('/api',function(req, res, next){
console.log('A new request received at ' + Date.now())
next()
})
SELECT Postcode, COUNT(*) AS total_adresses
FROM my_database
WHERE Postcode = '0010NK'
GROUP BY Postcode;
中的键组合定义了聚合结果集中的每个行。每个GROUP BY
只需要一行,因此这是Postcode
中唯一的密钥。
编辑:
要计算不同地址的数量,请使用GROUP BY
。这是一种方式:
COUNT(DISTINCT)
一些数据库支持:
SELECT Postcode, COUNT(DISTINCT CONCAT(STREET, ' ', NUMBER, ' ', POSTALCODE) AS total_adresses
FROM my_database
WHERE Postcode = '0010NK'
GROUP BY Postcode;
答案 1 :(得分:1)
使用派生表返回唯一地址。然后GROUP BY结果:
select Postcode, count(*)
from
(
SELECT DISTINCT Street, Number, Postcode
FROM my_database
) dt
group by Postcode