A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
配列でもインデックスを使って検索できます。
CREATE TABLE
test=> CREATE TABLE t (c int[]);
CREATE TABLE
test=> INSERT INTO t SELECT ARRAY[n] FROM generate_series(1, 100000) AS n;
INSERT 0 100000
test=> EXPLAIN SELECT * FROM t WHERE c @> ARRAY[1];
QUERY PLAN
-------------------------------------------------------
Seq Scan on t (cost=0.00..1986.00 rows=100 width=25)
Filter: (c @> '{1}'::integer[])
(2 行)
test=> CREATE INDEX t_c_idx ON t USING gin (c);
CREATE INDEX
test=> ANALYZE t;
ANALYZE
test=> EXPLAIN SELECT * FROM t WHERE c @> ARRAY[1];
QUERY PLAN
------------------------------------------------------------------------
Bitmap Heap Scan on t (cost=5.05..281.52 rows=100 width=25)
Recheck Cond: (c @> '{1}'::integer[])
-> Bitmap Index Scan on t_c_idx (cost=0.00..5.03 rows=100 width=0)
Index Cond: (c @> '{1}'::integer[])
(4 行)
No.2
- 回答日時:
> どのようなマイナス面があるのかご教示いただけないでしょうか。
参照リンク先にもありますが、クライアント側ではこの機能を
ほとんどサポートしていません。
また配列項目にはINDEX作成できないみたいなので、検索が遅く
なる可能性が大きいです。
> 「(顧客番号+訪問日)を主キーして」という点は顧客番号、訪問日の両方を主キーにするという意味でしょうか?
(顧客番号、訪問日)の複合キーで主キーにするという意味です。
create table 顧客訪問
(
顧客番号 int,
訪問日 date,
primary key (顧客番号,訪問日)
);
のようにすれば作成できます。
No.1
- 回答日時:
create table テーブル
(
顧客番号 int primary key,
訪問日 date[]
);
insert into テーブル values ( 1, array[ cast('2010-1-1' as date), cast('2010-5-1' as date), cast('2010-11-1' as date) ]);
insert into テーブル values ( 2, array[ cast('2011-1-1' as date), cast('2011-3-1' as date), cast('2011-6-1' as date) ] );
update テーブル
set 訪問日 = ARRAY_APPEND( 訪問日, cast( '2010-9-1' as date ) )
where 顧客番号=1;
update テーブル
set 訪問日 = ARRAY_APPEND( 訪問日, cast( '2010-7-1' as date ) )
where 顧客番号=1;
https://202.32.10.37/PostgreSQL/Manual/document/ …
https://202.32.10.37/PostgreSQL/Manual/document/ …
出来ますけれど、失うものの方が大きいと思います。
なぜ、
顧客番号
訪問日
で(顧客番号+訪問日)を主キーして、訪問日にINDEXを貼るのではダメですか?
回答ありがとうございます。下記の点重ねてご教示願えないでしょうか。
<出来ますけれど、失うものの方が大きいと思います。
どのようなマイナス面があるのかご教示いただけないでしょうか。
<顧客番号
訪問日
で(顧客番号+訪問日)を主キーして、訪問日にINDEXを貼るのではダメですか?
「(顧客番号+訪問日)を主キーして」という点は顧客番号、訪問日の両方を主キーにするという意味でしょうか?
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- PHP PHPで訪問回数を表示するカウンタを作成したい 3 2023/05/27 07:09
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- 倫理・人権 仕事名で接客 2 2022/05/14 19:00
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Excel(エクセル) 【Excel質問】 「本日の日付」から指定条件を満たす営業日経過後の日数を表示させる関数式 3 2022/06/06 23:28
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/2】 国民的アニメ『サザエさん』が打ち切りになった理由を教えてください
- ・ちょっと先の未来クイズ第5問
- ・【お題】ヒーローの謝罪会見
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECT 文の NULL列は?
-
SQLでUPSERTを一度に複数行やる...
-
SQLにて指定日付より前、かつ最...
-
ワークテーブル(ローカル)か...
-
MS Access から PostgreSQL へ...
-
2つのテーブルで引き算 postgres
-
PostgreSQL レコードからアイテ...
-
Postgresのデータ領域の拡張に...
-
PostgresSQLでテーブル定義の抽...
-
Accessでデータシートに同じデ...
-
テーブル名をカラムとして取得...
-
Oracleのview、synonymをCOMPIL...
-
「テーブルに座って……」という...
-
update文で改行を入れる
-
会社の飲み会の幹事になり、座...
-
論理名とコメント構文(?)について
-
他のデータベースとのテーブル結合
-
お金持ちのテーブル
-
SQL 複数テーブルのupdate
-
SELECT文で指定桁数分抽出する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT 文の NULL列は?
-
テーブルに存在しない列をselec...
-
単純なselectが遅くなるのです...
-
SQLにて指定日付より前、かつ最...
-
SQLでUPSERTを一度に複数行やる...
-
javaでデータベース上のテーブ...
-
PostgreSQLの断片化の状況を確...
-
2つのテーブルで引き算 postgres
-
Postgresのデータ領域の拡張に...
-
MS Access から PostgreSQL へ...
-
PostgreSQL 8.0.2 の ERROR: r...
-
複数テーブルにまたがるmax
-
UPDATE文の更新順序について
-
マッチング
-
Postgresqlのレポート機能について
-
テーブル定義書作成時のIndex付...
-
postgres FILLFACTOR 確認方法
-
デットロック回避策(autocommit...
-
reindex と update のデッドロック
-
テーブルを作ろうとしたら。
おすすめ情報