• ベストアンサー

データを同データが並ばないように並び替える

mojimojioの回答

  • ベストアンサー
  • mojimojio
  • ベストアンサー率51% (14/27)
回答No.4

monthカラムの他に必ずあるはずのID(プライマリキー)を利用すれば、仮想連番を取得できると思います。 idという名前の一意なフィールドがあるとすれば、こんな感じです。 select month, (select count(*) from hoge t2 where t2.id <= t1.id and t1.month = t2.month) as rownumber from hoge t1 order by rownumber; ただし、適当なIDがなくてプライマリキーが複数のカラムからなっていた場合が問題かも。

jew_ish
質問者

お礼

mojimojioさん、回答ありがとうございます。 なるほど、助かります。こんなSQLはまだまだ思いもつかなかったです。。。。 対象となるデータについては、明日ではないと(←担当の人間がお休み)、詳細なところまではわからないのですが、プライマリーキーがあればかなり有効な手立てになることまちがいなしです。勉強になります。

関連するQ&A

  • SQL内でのデータコピー

    おはようございます! 今私が扱っているSQLデータであるコラムデータを違うコラムに移行したいのですがその方法が分かりません。 このSQLデータは「顧客」テーブルと言うものがあり、 「顧客」テーブルの「コメント」と言うコラム内データを「ノート」というコラムに移動したいです。 「顧客ID」があるので 「顧客ID」が同じという条件で 「顧客」テーブルの「コメント」内データを、「顧客」テーブルの「ノート」内に移動する 為にはどう言った構文を作成すればよろしいのでしょうか? かなり切羽詰まっているので宜しくお願いします!

  • 複数のテーブルからデータを取得したい

    1つのテーブルから重複したデータを取り除いて表示するときに使う 【select distinct カラム名 from テーブル名;】 がありますよね。 それと同じようなことを複数のテーブルをまたいで行いたいのですがうまくいきません。 ちなみに両方のテーブルのカラム名は同じです。 【select distinct カラム名 from テーブル1 union select distinct カラム名 from テーブル2;】 としても重複を取り除いた後にテーブルを結合してるので結果的に両テーブルの重複した値を取り除くことができず。 そこで 【select distinct T1.カラム名, T2.カラム名 from テーブル1 T1. テーブル2 T2;】 としてみたのですが、クエリを実行中のまま反応がないので悩んでます。 ちなみに2つのテーブルのデータはそれぞれ2万件ほどです。 こういう時どういうsql文を組むのが正しいのでしょうか?

    • ベストアンサー
    • MySQL
  • 重複しないデータの抽出について

    MYSQL5.0.77で DBをつくり テーブル1のAフィールドのデータから テーブル2のAフィールドのデータ、 テーブル3のAフィールドのデータ、 テーブル3のAフィールドのデータ、 のいずれにも重複しないデータのみ 抽出したいと思っています。 どのようなSQL文を書けばよいでしょうか? じぶんでいろいろ試しましたがどうしても出来ません。 どなたかご教授願います。

    • ベストアンサー
    • MySQL
  • SQL 同テーブル、同フィールドの文字列連結

    以下の様にSQLで実現したいと思っております。 なお、DBはOracle10Gを利用しております。 親と子テーブルがあり以下の構成となっております。 ■親テーブル  ID,カラムA  1 ,AA  2 ,BB  3 ,CC ■子テーブル  ID,枝番,カラムB  1 ,1 ,あああ  1 ,2 ,いいい  2 ,1 ,ううう  2 ,2 ,えええ  2 ,3 ,おおお  3 ,2 ,かかか ※IDカラムは親テーブルと子テーブルは1:1です  子テーブルの枝番カラムはIDに対してN件です。 やりたい事としては、上記の2テーブルより、以下の結果を出力したいです。  ID,カラムA,カラムB  1 ,AA ,あああ いいい  2 ,BB ,ううう えええ おおお  3 ,CC ,かかか 親テーブルを元にして、 親テーブルに紐づく子テーブルのカラムBを連結して出力 するSQLをご教授いただけますでしょうか

  • オラクルからAccessにデータ追加

    オラクルから、必要なデータを抜出し加工の為のDBをAccessで作成していますが、オラクルから抜き出したデータ(レコードセット)を、どうやってAccessのテーブルに書き込めばよいかがわかりません。 ◎環境 Oracle:10g Access:2010 ◎現在の状況 Dim CON As New ADODB.Connection Dim RS As ADODB.Recordset Dim SQL As String Dim i As Integer 'DB接続定義 CON.Open "DSN=DNS名;UID=ユーザー名;PWD=パスワード;" 'SQL文 SQL = "SELECT " SQL = SQL & "カラム1," SQL = SQL & "カラム2," SQL = SQL & "カラム3" SQL = SQL & "FROM オラクルテーブル名 " SQL = SQL & "WHERE 抽出条件 " SQL = SQL & "AND 抽出条件" SQL = SQL & "GROUP BY カラム" SET RS = CON.EXCUTE(SQL) For i = 1 To 10 Debug.Print rs(カラム1) & rs(カラム2) next i ここまでは、オラクルのテーブルから、レコードセットにデータが取り込まれてます。 rs.close: SET RS = Nothing con.close:SET CON=Nothing end sub 案1 レコードセットのデータを、Access側のテーブルにループで回して、1行ずつデータ追加 案2 INTO句で直接、テーブル作成 調べていて、2通りのやり方があると思うのですが、どちらにしても、テーブルへの書き込み方がわかりません。 案1の場合、Access側のテーブルを開いてデータ追加する方法 ※同時に2つのテーブルを開くことになるのでは? 案2の場合、SQL文はオラクルで処理する為の物なので、AccessテーブルのINTO句が使えるのか? オラクルのテーブルをリンクする事も考えたのですが、実際動かすPCにはAccessRuntimeしかインストールしてませんので、オラクルのテーブルをリンクしてくれませんでした。 よい方法があれば、アドバイスを頂けたら幸いです。

  • データの持ち方について

    一般的に、DB(MySQL)へは、何を入れるのでしょうか? PHPで計算可能なものは、なるべく入れない方がいいのでしょうか? 例:年齢を表示させたい場合、DBへ入れておく値 1.誕生日(から計算) 2.年齢 3.何も入れない(別データからPHPで計算可能な場合) なるべくDBへデータを保持しない方がいいのかな? と思い、今回、3でやってみました。 具体的には、mysql_fetch_arrayとかで、データを取り出し、 そこから色々計算して年齢を割り出し、表示させてみたのですが、 DBとPHPを使って色々やるんだったら、 初めから素直にDBへデータを入れといて、 そこから、取り出した方が、 いいのかな? とも思いました。 一般的に、DBへ入れなくても、 (計算等によって)取得できる値については、 やはり、DBへ入れない方がいいのでしょうか? また、ちょっと別件なのですが、 例えば、DBからデータを取り出して、 ソートして表示させたい際、 3つぐらい方法を思いつくのですが、 一般的には、どんな感じで実装するのでしょうか? 1.SQL文でソートをかけて取り出す 2.SQL文で取り出した後、ソート部分はPHPで行う 3.SQL文で取り出した後、ソートはJavaScriptで行なう 特にパフォーマンスを気にしているわけではないのですが、 普通、一般的に、どういう風に実装するのか分からず、質問してみました。 MySQLとPHPを使っている限りは、 余程大規模なサイトでなければ、この辺はあまり気にしなくてもよい感じでしょうか?

    • ベストアンサー
    • PHP
  • アクセス97で重複データを見つけたい

    アクセス97を使用しています。 テーブルの重複したデータを取得する方法はあるでしょうか? 取得して区別を付けたいのです。 例えば、下記のようなデータにチェックを付けたいのです。 データ チェック欄 1    ○  2    × 2    × 3    ○ 4    ○ 5    × 5    × 7    ○ クエリー又はSQLで実施したのですが可能でしょうか? 例えば 該当テーブルをデータをソートしてSELECTし 自データと次データの比較を全件行う ことを繰り返す。 という方法しかないのでしょうか?

  • 複雑な抽出条件のSQL文

    まだまだ初心者ですがよろしくお願いします。 以下の条件でDBからデータを抽出したい場合のSQLを 教えていただきたいです。 ・テーブルAがありカラムがA、Bとある。 ・Aは重複できないようになっているがBは重複可。 ・Bが重複しているレコードのAの値が欲しい。 環境はSQLServer2000+VB6.0です 情報が足りないかも知れませんがよろしくお願いいたします。

  • バイナリーの画像データを読み込む。

    データベースをサイベース社のAdaptive Server Anywhre 7と いうのを使用していて、そのDBのテーブルに、long binaryで画像データ の定義を切ってデータをバイナリで保存してあります。 (もとはBMPの画像をバイナリに変換している) 上記のバイナリデータをVBのフォーム上(イメージ)に表示させるには どのようにしたらいいのでしょうか? もちろん、Loadpicture句を使用するのでしょうが、通常はパスを切ったり して使用すると思うのですが。。 VB始めたばかりでまったく想像つきません。どうか教えてください! 別記:上記サイベースのDBで10回程度連続でDBを読み込みに行くと エラーになるのですが、DB上でそのような回数の指定があるのでしょうか? それとも、ハード的な問題なんでしょうか?いままでそのような経験が ありましたら対策等教えてください。お願いします!

  • MySQL,PHPを使いデータとデータ件数を取得する関数

    よろしくお願いします。 このようなテーブルがあります。 テーブル名GAME id name    price  genre_id  comment 1 FF1    100  1  おもしろい 2 カービー 200 3 丸い赤 3 バイオ   250 2 怖い : : : : : テーブル名GENRE genre_id genre_name 1 RPG 2 ホラー 3 バイオ このようなテーブルがあるとして、 検索したいカラム(id,name,g_id,comment)に対して検索キーワードに部分一致をしたものデータからソートしたいカラムと昇順降順のようにソートしページ数から (ページ数-1)*10+1 ~ ページ数*10 最終ページのときは (ページ数-1)*10+1 ~ 最終ページ の部分のデータを取得する関数を作りたいです。表示するデータは id name genre_name です。 ページャーも使うので検索カラムにたいして検索ワードに部分一致した結果件数も戻り値として返したいです。 上記のsql文を教えてください。 またデータと結果件数を返す関数を作ることは可能でしょうか? 関数の引数は以下のように5つにするつもりです。 function getList($search_column,$search_word,$sort_column,$sort_order,$page_number) どうかご教授ください。

    • 締切済み
    • PHP