バックエンド

【MySQL】2つの条件でまとめて数値を合計したい【初心者向け】


Warning: Trying to access array offset on value of type bool in /home/mochaccino8/coinbaby8.com/public_html/wp-content/themes/mag_tcd036/functions/short_code.php on line 36

Warning: Trying to access array offset on value of type bool in /home/mochaccino8/coinbaby8.com/public_html/wp-content/themes/mag_tcd036/functions/short_code.php on line 36

Warning: Trying to access array offset on value of type bool in /home/mochaccino8/coinbaby8.com/public_html/wp-content/themes/mag_tcd036/functions/short_code.php on line 36

例えば家計簿みたいなWebサービスをつくりたいと思ったら、

『データベース』をうまく使う必要がでてきます。

例えば kakeibo というテーブルで、こんな内容になっていたとして。

いくつかのパターンで『SQL』文をつくってみたいと思います。

Sponsored link

mysql でとりあえず全件表示

SELECT * FROM `kakeibo`;

で全件表示されます。

FROM で 対象のテーブルを指定して、
SELECT で 表示させる行を決定します。

参考記事

Sponsored link

mysql 項目ごとに合計値を出す

例えば 食費の合計や交通費の合計をだしたいと思ったら、SQL文はこうなります。

SELECT `type`, sum(`price`)  
FROM `kakeibo`
GROUP BY `type`;

出力結果はこう。

SELECTは一旦おいておいて、

FROMでテーブルを指定して、

『GROUP BY』 で まとめたい列を指定します。

今回はtypeという列に食費や交通費を書いているので、 『GROUP BY type』 になります。

最後にSELECTで表示させる行を決めるのですが、

もしこう書いちゃうと、

SELECT `type`, `price`
FROM `kakeibo`
GROUP BY `type`;

こんな出力結果になります。

アオキ
交通費、雑費、食費とtypeはまとまっているのに、金額が足されていない・・

金額を合計して表示するために、sum(price) としているんですね。

SELECT `type`, sum(`price`)  
FROM `kakeibo`
GROUP BY `type`;

なので、sum と GROUP BY はセットで使うことが多いのかなと思います。

Sponsored link

mysql 2つの条件でまとめて数値を合計したい

先ほどは交通費、雑費、食費などのtypeでまとめたのですが、
日付ごとに出力したいと思ってこう書いたとすると、

SELECT `type`, `date`, sum(`price`) 
FROM `kakeibo`
GROUP BY `type`;

こんな出力結果になります。

アオキ
なんか出力結果が変。。3月2日消えとるし・・

なぜダメかというと、

GROUP BY で、 type しかまとめていないので、

日付の部分は無視したような状態になってるんですね。

それぞれの日付でもまとめたい場合は、『GROUP BY』 を2つ書けばOKです。

SELECT `date`, `type`, sum(`price`) 
FROM `kakeibo`
GROUP BY `type`, `date`;

せっかくなので日付順で並び替えてみます。

SELECT `date`, `type`, sum(`price`) 
FROM `kakeibo`
GROUP BY `type`, `date`
ORDER BY `date`;

並び替えは『ORDER BY』 ですね。

アオキ
うん、完璧ですな。

『GROUP BY』 で2つの条件でまとめるのをエクセルでやろうとすると、

なかなか手間だったりするんですよね。

アオキ
VLOOPUP関数とか使えばいけるかもですがちょっとめんどい・・

例えば2万行のデータだったりすると関数つくるのだけでも大変だったりします。

『mysql』などのデータベースで、複数のグループをまとめることに慣れてきたら、

いろんな分析だったり見せ方ができるようになってくるので、

興味があればぜひやってみてもらえればなと思います。

アオキ
最初はわけわからんかったのですが、何度もやっていると慣れてきます。Web系やるならぜひ使いこなしましょ〜

『mysql』関係ではこんな記事も読まれています。

1. 【mysql】SQL文のつくり方のコツ〜ちょっとずつ組み立てる〜【初心者向け】

2. 【mysql】2つの条件でまとめて数値を合計したい【初心者向け】

3. 検索システムのデータベースの作り方や考え方を8ステップで書き連ねてみる

アオキ
ツイッターでも記事ネタ含めちょろちょろ書いていくので、よろしければぜひフォローお願いしますm(_ _ )m

アオキのツイッターアカウント


関連記事一覧 (一部広告あり)

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


最近の記事

アーカイブ

  1. バックエンド

    【Laravel第4弾】Vue.js3(CompositionAPI+Scrip…
  2. STEAM教育

    熊本市東区でプログラミングのワークショップやります〜夏休み特別企画 こども向けス…
  3. オンライン教材

    【AWS】【初心者向け】インフラの基礎からわかる講座をリリースしました【Udem…
  4. オンライン教材

    【PHP/Laravel】初心者向けの動画をリリースしました【Udemy】
  5. 学び・生涯学習

    アンケートのお願い Udemy 次Laravelシステムとフロントについて
PAGE TOP