[英]MySQL query with COUNT and ORDER BY and hidden results
我試圖得到一個正確的查詢,在這里我可以按州顯示每個州城市的數據,其中每個州的城市都有商店(每個城市的商店數)。 任何幫助是極大的贊賞。
California
Los Angeles (5)
San Diego (8)
San Francisco (3)
...
現在,我的身高低於這個數字,無法提供每個城市的數量。
$sql = "SELECT DISTINCT city, state FROM locations WHERE open = 'Y' ORDER BY state ASC";
$result = mysqli_query($conn,$sql);
$num_columns = 1;
$rows = array();
while($row = mysqli_fetch_assoc($result)){
if(!isset($rows[$row['state']])){
$rows[$row['state']] = array();
}
$rows[$row['state']][] = $row['city'];
}
echo "<table>";
foreach($rows as $state => $cities){
echo '<tr><th colspan="'. $num_columns .'">'. $state .'</th></tr>';
$cityData = array_chunk ($cities, $num_columns);
sort($cityData); // split array into chunk of $num_columns cities per array
foreach($cityData as $row){
echo "<tr>";
for($i=0; $i<$num_columns; $i++){
$city = isset($row[$i]) ? $row[$i] : "";
echo "<td>$city</td>";
}
echo "</tr>";
}
}
echo "</table>";
我可以建議以下GROUP BY
查詢:
SELECT
city,
state,
COUNT(CASE WHEN open = 'Y' THEN 1 END) AS cnt
FROM locations
GROUP BY
city,
state
ORDER BY
state;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.