忍者ブログ

からすまる日誌

20200406pm04 lunch和演算

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

20200406pm04 lunch和演算

UNION ALLについて
lunch db
 
sales table/column2
s_id int(primary,A.I.)
f_id int
 
sales2/column2
s_id int(primary,A.I.)
f_id int
 
売れたものを記録したい
 
2つのよく似たテーブルにf_idに違う値を入れておく
 

 
 

支社ごとに違うテーブルで何が売れたかあがってくるとする(支社1:sales / 支社2:sales2)
これをマージしたい
和演算をしたい
 

SELECT * FROM sales
UNION ALL
SELECT * FROM sales2
 

統合後の結果が出た
 
前提条件としてセレクトするカラム数とカラム名が一緒でないといけない
 
もしもし違ったらAS句で修正してやる
 

しかしこれでは「どの支社の売り上げか」わからない
 
3つめのカラムをでっちあげるよ
店舗名のカラムを無理やり入れる
 
SELECT s_id, f_id,"支店A" FROM sales 
UNION ALL 
SELECT s_id, f_id ,"支店B" FROM sales2
  
でた 
 
 

こういう風に存在しないカラムを出力することもできるらしい
 
SELECT s_id, f_id,"支店A" FROM sales 
UNION ALL 
SELECT s_id, f_id ,"支店B" FROM sales2
UNION ALL 
SELECT s_id, f_id ,"支店B" FROM sales3
UNION ALL 
SELECT s_id, f_id ,"支店B" FROM sales4
 
とかでいくつでもできるらしい
 
UNION ALLはこう全件出てくるが、
UNIONにしてしまうと、完全にかぶったデータは重複データとしてなくなってしまう
売上をみるにはALLがいる
しかもUNION ALLの方が時間が速い
 
これが集合演算の和演算
AにあってBにないという差演算もできるらしい
ただこっちはちょっとむつかしいらしい
サーバの種類によって方言があるらしい 
 

なおMySQLより実際まりあDBで直書きしたほうがめっちゃ速いらしい
数時間かかるものが分単位とか
 
PR

コメント

ブログ内検索

カレンダー

03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30