実現したいこと
下記、TABLE 1があります。
それを "MONTH = 1 or 2" となるTABLE 2に成形し、そのTABLE 2のレコード数を出力したいです。
(TABLE 1)
MONTH | DAY | NAME | DATA |
---|---|---|---|
1 | 1 | A | 100 |
1 | 1 | B | 103 |
1 | 1 | C | 105 |
1 | 2 | A | 101 |
1 | 2 | B | 104 |
1 | 2 | C | 105 |
2 | 1 | A | 100 |
2 | 1 | B | 103 |
2 | 1 | C | 105 |
2 | 1 | D | 101 |
2 | 2 | A | 101 |
2 | 2 | B | 104 |
2 | 2 | C | 105 |
2 | 1 | D | 101 |
3 | 1 | A | 100 |
3 | 1 | B | 103 |
3 | 1 | C | 105 |
3 | 2 | A | 101 |
3 | 2 | B | 104 |
3 | 2 | C | 105 |
(TABLE 2)
NAME | DATA |
---|---|
A | 402 |
B | 414 |
C | 420 |
D | 202 |
該当のソースコード
TABLE 2は下記のビューを用いて導出できます。
SQL
1SELECT 2 NAME, 3 SUM(DATA) 4FROM TABLE1 5WHERE MONTH BETWEEN 1 AND 2 6GROUP BY NAME
上記からTABLE 2のレコード数の出力は下記で実現できると考えましたがエラーになります。
SQL
1SELECT COUNT(*) 2FROM ( 3 SELECT 4 NAME, 5 SUM(DATA) 6 FROM TABLE1 7 WHERE MONTH BETWEEN 1 AND 2 8 GROUP BY NAME 9)
発生している問題・エラーメッセージ
下記、メッセージが出ます。
Error Code: 1248. Every derived table must have its own alias
どのようにすれば、レコード数を出力できるのでしょうか。ご教示ください。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
DBはMySQLです。
TABLE 1は下記でCREATEしています。
SQL
1CREATE TABLE TABLE1 ( 2 `MONTH` INT(2) NOT NULL, 3 `DAY` INT(2) NOT NULL, 4 `NAME` CHAR(4) NOT NULL, 5 `DATA` INT(4) NULL, 6 PRIMARY KEY (`MONTH`, `DAY`, `NAME`))

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/25 10:56