我在我的数据库中有这些
年|城市
2011 |纽约
2010 | LA
2010 | LA
2010 |纽约
2012 |得克萨斯
我有一个2列包含名为year和town_city
我希望每年的城镇数量最多。
outout应该是
年|城市|总数
2011 |纽约| 1
2010 |洛杉矶| 2
2012 |得克萨斯州1
答案 0 :(得分:1)
执行此操作的几个步骤:
首先 - 您需要找到所有不同的名称:
SELECT DISTINCT column_name(s)
FROM table_name
这将产生一个包括纽约,洛杉矶,德克萨斯州的阵列 - 将其保存为$ unique;
其次,逐步执行数组,运行具有该特定值的SQL查询,将结果数保存为多维数组:
foreach ($unique as Su):
$u[$i['city'] = $u;
$u[$i]['num'] =
//SQL COUNT
SELECT COUNT(city) AS City FROM TableName
WHERE City=$u
FROM table_name
//increase array count
$i++;
endforeach;
这将为您留下如下数组:
$u[0]['city'] = New York
$u[0]['num'] = 2
答案 1 :(得分:0)
SELECT year, city, count(*)
FROM city_table
GROUP by year, city;
答案 2 :(得分:0)
您将需要使用此查询:
SELECT year,city,count(*) AS total FROM tablename group by city;
group by将仅返回具有唯一城市的行,而计数将显示已合并的行数。
答案 3 :(得分:0)
使用此功能可以获得所需的结果:
SELECT year, city, count(*)
FROM city_table ct1
WHERE year=(SELECT max(year) FROM city_table ct2 WHERE ct2.city=ct1.city)
GROUP BY year, city