バックエンド

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

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

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

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

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

Sponsored link

mysql でとりあえず全件表示

で全件表示されます。

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

参考記事

Sponsored link

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

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

出力結果はこう。

SELECTは一旦おいておいて、

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

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

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

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

もしこう書いちゃうと、

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

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

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

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

Sponsored link

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

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

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

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

なぜダメかというと、

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

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

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

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

並び替えは『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(PHP)】初心者向け アプリのつくり方 をリリースしました【t…
  2. バックエンド

    【Python】手軽に試す方法2つとwebフレームワークについて【初心者向け】
  3. CG関連

    【WebGL】入門 わかりやすく【図解】してみた
  4. CG関連

    【P5.js】遊ぶようにプログラムできるクリエイティブコーディング〜はじめのいっ…
  5. 数学

    【微分】とは わかりやすくまとめてみた〜めっちゃすごいわり算【初心者向け】
PAGE TOP