UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#005 人口の数字を万人単位で四捨五入する

記入日:2022-12-27 編集日:2022-12-27

SQL見るだけクエリ。今回はテーブルに保存されている人口数を万人単位で四捨五入して見やすくしようと思います。四捨五入する為にROUND関数というものを使います。

この記事を読むと(約5分)
ROUND関数を使って四捨五入する方法を知る事ができます。

以下の様なテーブルを用意しました。(テーブル名:table_name)

idname1name2populationimgarea
1横浜市神奈川県3771961dbsample関東
2大阪市大阪府2756807dbsample関西
3名古屋市愛知県2325778dbsample中部
4札幌市北海道1973000dbsample北海道
5福岡市福岡県1631409dbsample九州

同様に20レコード(件)

テーブルの情報を取得するSQLに関して、注目する部分は、以下の9行目のみです。

SELECT *, ROUND(population/10000) AS round FROM table_name この部分で、人口の数字を10000で割ったのちに四捨五入しております。

ROUND(population/10000) AS round SQLの記述で頻繁に AS という文字が出てきますが、これは ROUND(population/10000) の事をroundという呼び方に置き換える事になります。

try {
    include_once '../model/class.php';

    // データベース接続
    $database = new Database();
    $db = $database->connect();

    // SQLを準備し、パラメータをバインドする
    $query = 'SELECT *, ROUND(population/10000) AS round FROM table_name';
    $stmt = $db->prepare($query);

    // 実行する
    $stmt->execute();

    // 結果を取得する
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
    print_r($result);

    // データベースから切断する
    $database->disconnect();

} catch(PDOException $e) {
    echo $e->getMessage();
}

これを実行すると、二次元連想配列という形式で、全ての情報を取得することができます。

            Array
(
    [0] => Array
        (
            [id] => 1
            [name1] => 横浜市
            [name2] => 神奈川県
            [population] => 3771961
            [img] => dbsample
            [area] => 関東
            [round] => 377
        )

    [1] => Array
        (
            [id] => 2
            [name1] => 大阪市
            [name2] => 大阪府
            [population] => 2756807
            [img] => dbsample
            [area] => 関西
            [round] => 276
        )

    [2] => Array
        (
            [id] => 3
            [name1] => 名古屋市
            [name2] => 愛知県
            [population] => 2325778
            [img] => dbsample
            [area] => 中部
            [round] => 233
        )

    [3] => Array
        (
            [id] => 4
            [name1] => 札幌市
            [name2] => 北海道
            [population] => 1973000
            [img] => dbsample
            [area] => 北海道
            [round] => 197
        )

    [4] => Array
        (
            [id] => 5
            [name1] => 福岡市
            [name2] => 福岡県
            [population] => 1631409
            [img] => dbsample
            [area] => 九州
            [round] => 163
        )

    [5] => Array
        (
            [id] => 6
            [name1] => 川崎市
            [name2] => 神奈川県
            [population] => 1540890
            [img] => dbsample
            [area] => 関東
            [round] => 154
        )

    [6] => Array
        (
            [id] => 7
            [name1] => 神戸市
            [name2] => 兵庫県
            [population] => 1510171
            [img] => dbsample
            [area] => 関西
            [round] => 151
        )

    [7] => Array
        (
            [id] => 8
            [name1] => 京都市
            [name2] => 京都府
            [population] => 1448964
            [img] => dbsample
            [area] => 関西
            [round] => 145
        )

    [8] => Array
        (
            [id] => 9
            [name1] => さいたま市
            [name2] => 埼玉県
            [population] => 1339784
            [img] => dbsample
            [area] => 関東
            [round] => 134
        )

    [9] => Array
        (
            [id] => 10
            [name1] => 広島市
            [name2] => 広島県
            [population] => 1191445
            [img] => dbsample
            [area] => 中国
            [round] => 119
        )

    [10] => Array
        (
            [id] => 11
            [name1] => 仙台市
            [name2] => 宮城県
            [population] => 1099239
            [img] => dbsample
            [area] => 東北
            [round] => 110
        )

    [11] => Array
        (
            [id] => 12
            [name1] => 千葉市
            [name2] => 千葉県
            [population] => 978801
            [img] => dbsample
            [area] => 関東
            [round] => 98
        )

    [12] => Array
        (
            [id] => 13
            [name1] => 北九州市
            [name2] => 福岡県
            [population] => 924143
            [img] => dbsample
            [area] => 九州
            [round] => 92
        )

    [13] => Array
        (
            [id] => 14
            [name1] => 堺市
            [name2] => 大阪府
            [population] => 816559
            [img] => dbsample
            [area] => 関西
            [round] => 82
        )

    [14] => Array
        (
            [id] => 15
            [name1] => 浜松市
            [name2] => 静岡県
            [population] => 783573
            [img] => dbsample
            [area] => 中部
            [round] => 78
        )

    [15] => Array
        (
            [id] => 16
            [name1] => 新潟市
            [name2] => 新潟県
            [population] => 778717
            [img] => dbsample
            [area] => 中部
            [round] => 78
        )

    [16] => Array
        (
            [id] => 17
            [name1] => 熊本市
            [name2] => 熊本県
            [population] => 737850
            [img] => dbsample
            [area] => 九州
            [round] => 74
        )

    [17] => Array
        (
            [id] => 18
            [name1] => 相模原市
            [name2] => 神奈川県
            [population] => 726559
            [img] => dbsample
            [area] => 関東
            [round] => 73
        )

    [18] => Array
        (
            [id] => 19
            [name1] => 岡山市
            [name2] => 岡山県
            [population] => 719437
            [img] => dbsample
            [area] => 中国
            [round] => 72
        )

    [19] => Array
        (
            [id] => 20
            [name1] => 静岡市
            [name2] => 静岡県
            [population] => 683358
            [img] => dbsample
            [area] => 中部
            [round] => 68
        )

)
			

見やすくする為に、HTMLとCSSで体裁を整えると、以下のようになります。万人という文字はHTMLで追加しています。

全国792市の人口ランキングBEST20

市名 都道府県名 人口 エリア
1 横浜市
神奈川県
377万人
関東
2 大阪市
大阪府
276万人
関西
3 名古屋市
愛知県
233万人
中部
4 札幌市
北海道
197万人
北海道
5 福岡市
福岡県
163万人
九州
6 川崎市
神奈川県
154万人
関東
7 神戸市
兵庫県
151万人
関西
8 京都市
京都府
145万人
関西
9 さいたま市
埼玉県
134万人
関東
10 広島市
広島県
119万人
中国
11 仙台市
宮城県
110万人
東北
12 千葉市
千葉県
98万人
関東
13 北九州市
福岡県
92万人
九州
14 堺市
大阪府
82万人
関西
15 浜松市
静岡県
78万人
中部
16 新潟市
新潟県
78万人
中部
17 熊本市
熊本県
74万人
九州
18 相模原市
神奈川県
73万人
関東
19 岡山市
岡山県
72万人
中国
20 静岡市
静岡県
68万人
中部

今回も、SQLの便利な関数の例でした。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。