
No.5ベストアンサー
- 回答日時:
>group byでユニークになっているのですね。
勘違いしてはいけないのは、データが単にユニークなだけで、ユニークな属性は
ついていないということです。
もしさらにそのテーブルからリレーションするのであれば、なんらかの
属性はつけた方がよいかもしれません
>もう一つ質問ですが。ここで作ったテーブルを別のテーブルを日付でjoin
>したいのですが。この時の日付はインデックスの指定が要るのでしょうか。
であれば「create table xt」するときに適正なインデックスをつくっておいた方がよいでしょう。
もちろん後付けでalter tableで追加することもできます
有難う御座いました。
矢張り、インデックスは必要だと言う事ですね。
分かりました。これで、全体がすっきりと見えて来ました。
これで最後です。最後迄有難う御座いました。
No.4
- 回答日時:
>実はテーブル作成に付いては、No.2の回答で満足しています。
>後出しで済みませんが、実はこのNo.2のテーブルの日付にunique
>の設定でインデックスを設けたいのですが。
uniqueつけなくてもgroup byのキーになっているのユニークですがどうしてもやりたい?
そういう場合はcreate tableで先にテーブルをつくっておくだけです
//元データ
create table hoge (日付 date,id int,size varchar(10));
insert into hoge values('2016-02-01',1,'S'),('2016-02-01',2,'S'),('2016-02-01',3,'M'),('2016-02-02',4,'L'),('2016-02-02',5,'L'),('2016-02-03',6,'L'),('2016-02-04',7,'S');
//テーブル作成
create table xt(日付 date not null unique,S int,M int,L int ,合計 int);
//単純なデータ投入
insert into xt
select 日付,sum(size='S'),sum(size='M'),sum(size='L'),=count(*)
from hoge
group by 日付;
//ユニークな日付が競合したときにアップデートする
insert into xt
select 日付,@s:=sum(size='S'),@m:=sum(size='M'),@l:=sum(size='L'),@sum:=count(*)
from hoge
group by 日付
on duplicate key update S=@s,M=@m,L=@l,合計=@sum
有難う御座います。
group byでユニークになっているのですね。
分かりました。
もう一つ質問ですが。ここで作ったテーブルを別のテーブルを日付でjoin
したいのですが。この時の日付はインデックスの指定が要るのでしょうか。
そこの部分が心配だったので。
どうなんでしょうか。
済みません。回答願います。
No.3
- 回答日時:
>テーブル作成クエリーでテーブルを作りたい
「テーブル作成クエリー」についてはよくわからないので
どこまで自動化できるかによりますね。
むしろピボットテーブルを先行して作っておけば比較的楽に処理はできると思いますが・・・
例えばこう
create table hoge (日付 date,id int,size varchar(10));
insert into hoge values('2016-02-01',1,'S'),('2016-02-01',2,'S'),('2016-02-01',3,'M'),('2016-02-02',4,'L'),('2016-02-02',5,'L'),('2016-02-03',6,'L'),('2016-02-04',7,'S');
//ピボット
create table pt(size varchar(10),S int,M int,L int,合計 int);
insert into pt values('S',1,0,0,1),('M',0,1,0,1),('L',0,0,1,1);
//実行
select 日付,sum(S) S,sum(M) M,sum(L) L ,sum(合計) 合計
from hoge inner join pt using(size)
group by 日付;
これをプロシージャをつかって半自動化することは可能ですが、ちょっと処理が面倒です
有難う御座います。
実はテーブル作成に付いては、No.2の回答で満足しています。
後出しで済みませんが、実はこのNo.2のテーブルの日付にunique
の設定でインデックスを設けたいのですが。
出来るのでしょうか。これで最後になると思いますが。
宜しくお願いします。
No.2
- 回答日時:
create table クロス集計
as select
日付
, sum(case size when 'S' then 1 else 0 end) as S
, sum(case size when 'M' then 1 else 0 end) as M
, sum(case size when 'L' then 1 else 0 end) as L
, count(*) as 合計
from 収穫
group by 日付
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エラー 1068 (42000): 複数の主...
-
WHERE `年月日` = '晴' OR `年...
-
SQLです教えてくださいお願いし...
-
MAMP 99ドル約1.6万円 高い...
-
あってますか?SQL
-
(初心者)MySQLやmaraDBで、crea...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
utf8bomとutf8mb4の違いがいま...
-
テーブル:生徒名簿 生徒名簿の...
-
うまくいきません教えてくださ...
-
同一日に複数レコードがある場...
-
SQLです教えてくださいお願いし...
-
SQLを作ったのですがうまくいき...
-
SQLです教えてください。
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
「総降水量が100mm以上になる...
-
SQLで漢字名称を都道府県や市区...
-
SQLあってますか?こう?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<SQL>重複しているデータの場合...
-
複数のテーブルから値を合計出...
-
SQLで、同じ値が何回連続す...
-
最新の日付と2番目の日付のデー...
-
【ExcelVBA】入力された日付か...
-
mysqlでunixtimeによる日付範囲...
-
日付検索で0001-01-01 00:00:00...
-
DISTINCTROWについてです。
-
MySQLで特定のグループの上位3...
-
MySQLのdatetime型に0月0日を格納
-
MySQLで日付(date)型のdefaul...
-
SQLです教えてくださいお願いし...
-
下記の問合せを行うクエリを、 ...
-
日付
-
「8月の第3土日」をデータベ...
-
サブクエリを使わない方法
-
windows7のmysqlで今日の日付か...
-
どんなSQL文にすればいいか悩ん...
-
mysqlに格納されている日付のデ...
-
LIKE検索で範囲指定の方法
おすすめ情報