
こんにちは。
PostgreSQL 7でシステムを開発中ですが、同一テーブルから「列~の値が■のものを2件、列~の値が▲のものを2件、列~の値が●のものを2件、それ以外のものからランダムに2件を取得」したいのですが、実現できなくて困っています。
select * from table where culumn = 'data1' limit 2
union
select * from table where culumn = 'data2' limit 2
というようなことなのですが、これでは「limit 2」でparse errorとなってしまいます。
できれば上記のSQL定義でビューを作りたいところなのですが、いい方法はないでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
unionを使っているため、limit使用時に全体でのlimitなのか各SELECT文ごとのlimitなのかでわからずエラーになるようです。
そこで、括弧で括ってやるといいです。
ところで、■▲●で2件取得のところは ORDER BYでソートしなくていいんでしょうか?
該当する列が元々2件だけしかないなら別ですが・・・。
(select * from table where culumn = '■' limit 2)
union
(select * from table where culumn = '▲' limit 2)
union
(select * from table where culumn = '●' limit 2)
union
(select * from table where culumn != '■' and culumn != '▲'and culumn != '●' order by random() limit 2)
ありがとうございます。
教えていただいた方法で期待通りに動きました。
括弧でくくるという発想がでてきませんでした。基礎からやり直します。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でQuickTimeがインス...
-
自治会総会の成立要件について
-
三段論法を真理値表で証明する
-
Postagre SQL エラー
-
PostgresqlをインストールするP...
-
plgファイルの開き方
-
postgresqlのtableのカラムの型...
-
php、postgresqlを使ってwebア...
-
sqlの中で、 例えば条件句で AN...
-
tesuto 01
-
python3.12のインストール方法
-
Pythonで2つのデータ(キー無し...
-
数値が定期的にあらわれる文字...
-
終端クォート ' が必要です と...
-
PostgressからMySQL(MariaDB)...
-
【PostgreSQL】行の値の並びを...
-
列が存在しないと言われる
-
PostgreSQL14.6のSSL対応について
-
ポストグレにあるExcelファイル...
-
PostgreSQL レコードからアイテ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT INTOで一度に複数の変数...
-
UPDATEの更新前の値を取得したい
-
複数の条件に該当する結果を、...
-
SELECTした結果に行番号を求めたい
-
データの入れ替えを同時に行な...
-
ダブリ数字の有無の確認にのマ...
-
プログラムよりファンクション...
-
PLPGSQLでの複数行複数列
-
副問合せで複数列の値リストの...
-
Pro*CでのSQL文について
-
where notにつて
-
パターンマッチング
-
SQLで小数点の計算がしたいです。
-
oleDBでnumeric形式の小数部分...
-
FETCH した行が取り出せない
-
複数カラムでdistinct
-
テーブル間の差分抽出方法は?...
-
SQLで任意の列の最大値の定数は...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
おすすめ情報