こんばんは。まず始めに申し上げておきますと
この質問は、できるかどうかすらもわかりません。
できなければ「できない」とお答えいただけるだけでも助かります。
では本題です。
SQLのDBで
data1|data2
----+-------
1 | 1
1 | 2
2 | 2
2 | 4
というようにデータが存在したとします。
ここで、data1=data2の場合、同じデータとしてカウントは「1」とされ、data1!=data2の場合にはそれぞれにカウントします。
つまり、ここで望む結果は以下のようになります。
data |count
----+-------
1 | 2
2 | 3
4 | 1
どうでしょうか?
こんなことできるのでしょうか?
もし何らかの方法が存在するならばお教えください。
宜しくお願いします。
No.1
- 回答日時:
「望む結果」のdataとcountがどう対応しているのかよくわかりません。
例えば、「望む結果」の1行目のdata 1 とcount 2 は何を指していますか?
count 2 は、多分、一致するレコードがテーブル例の1行目と3行目の2件あるという意味なのだと思うのですが。。。
補足説明をお願いします。
この回答への補足
せ、説明が難しい...。
え~、ではデータが数値だとわかりにくいので、ちょっとテーブル例を文字に変えて1行目から説明します。
data1|data2
----+-------
A | A
A | B
B | B
B | C
まずはdata1=A,data2=A、これは両方AなのでAが1件(count)となります。
次にdata1=A,data2=Bなので先程のAが++され2になり、
Bが1件countされます。
3行目は両方Bなので先程のBに1件++され、2件になります。
最後にdata1=B,data2=CなのでBは3件になって、Cが1件となり、以下の結果になります。
data |count
----+-------
A | 2
B | 3
C | 1
おわかりいただけたでしょうか?何かいい策をお待ちしております。
No.2
- 回答日時:
動作確認はしていない為、別名の指定にてエラーが起きるかもしれませんが、
SELECT data, Count(data) count
FROM (SELECT data1 data from hoge
union all select data2 from hoge where hoge.data1 <> hoge.data2)
GROUP BY data
で、如何でしょうか?
尚、テーブル名は「hoge」とさせて頂きました。
No.3
- 回答日時:
シングルクォーテーションを忘れた・・・(^ ^;
SELECT data, Count(data) 'count'
FROM (SELECT data1 'data' from hoge
union all select data2 from hoge where hoge.data1 <> hoge.data2)
GROUP BY data
すいませんでした。m(_ _)m
この回答への補足
すみません、できませんでした。いろいろ調べたり、試してみたりしたんですが、、、。
試してみたといっても書かれている内容を把握できませんので正直「下手な鉄砲」です。
もしよろしければ説明を加えていただけると非常にありがたいのですが、、、。
わがまま言って申し訳ありません。
No.4
- 回答日時:
下の感じでいかがでしょうか
SQLのDBってMS-SQLserverと言うことですか?
データを3つのセクションに分けて抽出してカウントします。
1.data1=data2のデータ
2.data1<>data2のdata1
3.data1<>data2のdata2
<SQLserverの例>----------------------------------
SELECT value data, COUNT(value) DataCount
FROM (SELECT data1 value FROM table1 WHERE data1 = data2
UNION ALL
SELECT data1 FROM table1 WHERE data1 <> data2
UNION ALL
SELECT data2 FROM table1 WHERE data1 <> data2) AS tableA
GROUP BY tableA.value
------------------------------------------------
後学のために、差し支えない範囲でどのようなことで使用されるのか教えていただけませんか?
この回答への補足
使用しているのはpostgreSQLです...。
postgresでvalueは使えないですよね?ちょっと良くわかりませんが、、、。valuesは使うんですけど。
>後学のために、差し支えない範囲でどのようなことで使用されるのか教えていただけませんか?
これはちょっと控えさせていただけないでしょうか?
すみません。。。m(_ _)m
どんなシステムかだけ申しますと、ある商品の出荷入荷情報を統計に取るシステムです。
これだけでどうかご勘弁を。。。
もしpostgreSQLでの方法もご存知でしたらお手数ですがお教えいただけないでしょうか?
宜しくお願いいたします。
No.5ベストアンサー
- 回答日時:
再びstorkです。
>使用しているのはpostgreSQLです..
前回のSQLは試して見ましたか?
postgres使用したことがないんですが、おそらく大丈夫だと思います。
ひっかかるとすればunion句をネストしているところかな(?)
試してみてひっかかったところを補足してもらえば、解決できるかも知れません。
>postgresでvalueは使えないですよね?
valueは単なる別名なので関係ないです。
もし、予約語でひっかかる場合は適当な文字に置き換えてください。
まだまだ理解できない個所はありますが何とか以下の方法でできました。
select data1 as value, count(*)
from (select data1 from test where data1=data2 union all select data1 from test where data1!=data2
union all select data2 from test where data1!=data2)
as tmp group by value;
storkさんのを見本にして少し手を加えたらできました。
「DataCount」というものが結局わからなかったのですが、とりあえず置いときます。(まだまだ勉強が足りん...)
ではありがとうございました。皆さん、本当に感謝してます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- その他(プログラミング・Web制作) pandasでまとめてインデックスを削除するにはどうすればいいですか? たとえば、以下のプログラムで 1 2022/07/31 23:09
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- Excel(エクセル) 重複したデータ(空白は除く)のVBA表記について 4 2022/08/15 07:28
- Java 動かなくなったのでJavaソースを手直しお願いします。 2 2022/04/30 05:35
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- その他(Microsoft Office) Excel 2列分のDATAの並べ替え 1 2023/01/01 17:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLで2年連続で値が上昇した年...
-
下記の問合せを行うクエリを、 ...
-
フラグをたてるってどういうこ...
-
【SQL】他テーブルに含まれる値...
-
データ削除とSQL*Loaderでのイ...
-
T-SQLで任意の箇所で強制終了す...
-
オラクルのUPDATEで複数テーブル
-
SELECT INTOで一度に複数の変数...
-
既存データをINSERT文にして出...
-
PostgreSQLのtimestamp型で時間...
-
結合したテーブルをSUMしたい
-
右向き、左向きの速度が最大と...
-
SQLで、Join句で結合したテ...
-
エラーを起こす方法
-
平均値のもとめ方
-
UPDATEで既存のレコードに文字...
-
timestampのデータはどのように...
-
selectの単純繰り返し
-
ゼロ未満の場合で更新する場合
-
sqlに記述できない文字
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
joinの場合のテーブル名の別名...
-
2つの列からの最大値取得
-
複数行の結果を単一列に連結
-
SQLのこと:distinctして並び替...
-
postgreSQLのupdateについて
-
access2000のクエリについて
-
SQL文の長さ制限について
-
SQLで期間をずらした集計処理
-
SQL 複数条件を設定
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
【SQL】他テーブルに含まれる値...
-
sqlに記述できない文字
-
UPDATEで既存のレコードに文字...
-
テーブル名が可変の場合のクエ...
-
エラーを起こす方法
-
オラクルのUPDATEで複数テーブル
-
truncate tableを使って複数の...
-
結合したテーブルをSUMしたい
-
Accessで今日から5日後
おすすめ情報