簡體   English   中英

使用COUNT和ORDER BY和隱藏結果進行MySQL查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM