PHPの「mb_detect_encoding」を使って読み込みファイルのエンコード処理
外部ファイル(CSVファイル等)を読み込んでサイト内に表示する際に、保存時の文字コードが…
自社運営サイトの集計時に、「同一人物からの同一スクールへのお問い合わせは、別講座の問い合わせであっても1人と数える」というルールがあり、純粋な問い合わせ人数を集計するのにはデータのグループ化を二重にする必要があったため対応方法をメモ
ID id | 受付日 sendtime | スクール名 school | コース名 course | 名前 name |
1 | 2023/12/31 14:36 | スクールA | 講座01 | 人物A |
2 | 2023/12/28 21:53 | スクールB | 講座02 | 人物B |
3 | 2023/12/28 11:25 | スクールC | 講座03 | 人物C |
4 | 2023/12/28 00:41 | スクールC | 講座04 | 人物D |
5 | 2023/12/28 00:36 | スクールD | 講座05 | 人物E |
6 | 2023/12/28 00:36 | スクールD | 講座06 | 人物E |
7 | 2023/12/23 17:17 | スクールD | 講座07 | 人物F |
8 | 2023/12/23 17:17 | スクールE | 講座08 | 人物F |
9 | 2023/12/23 17:17 | スクールE | 講座09 | 人物F |
10 | 2023/12/23 17:17 | スクールE | 講座10 | 人物F |
11 | 2023/12/23 17:17 | スクールE | 講座11 | 人物F |
12 | 2023/12/23 17:17 | スクールE | 講座12 | 人物G |
13 | 2023/12/19 20:59 | スクールC | 講座13 | 人物G |
SELECT sendtime, name, COUNT(id) FROM ( SELECT * FROM ○○○○ GROUP BY school ) GROUP BY name
同一人物からの同一スクールへの受付は1件とカウントするため、まずは対象のテーブル○○○○をスクール名「school」でグループ化し、同一スクールへの受付をまとる。
更に上記の内容を氏名「name」でグループ化し、受付数を集計する。
受付日 sendtime | 名前 name | 件数 count(id) |
2023/12/31 14:36 | 人物A | 1 |
2023/12/28 21:53 | 人物B | 1 |
2023/12/28 11:25 | 人物C | 1 |
2023/12/28 00:41 | 人物D | 1 |
2023/12/28 00:36 | 人物E | 1 |
2023/12/23 17:17 | 人物F | 2 |
2023/12/19 20:59 | 人物G | 2 |