- ベストアンサー
Mysqlレコード集計について
Mysqlレコード集計について 以下のようなテーブルがあります。 勝った試合は[win]に1が入っています。 |seq| date |win| | 1|2010/04/01| 1| | 2|2010/04/02| 0| | 3|2010/04/03| 1| | 4|2010/04/04| 1| | 5|2010/04/05| 1| [date] ASC 3連勝以上した回数をsqlで集計したいです。 sqlをいろいろ調べてみましたが、わかりませんでした。 わかる方いらっしゃれば教えてください。 よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
関連するQ&A
- 1回のSQLで集計結果順にソートする方法を教えてください
PHP4+MySQLです。 やりたいことがあるのですが、いいSQLが考えつきません。 お知恵を拝借できれば幸いです。 以下のようなテーブルがあるとします。 ID|ITEMid|DATE 1| 232|2009-06-14 2| 156|2009-06-14 3| 156|2009-06-14 4| 232|2009-06-14 5| 232|2009-06-14 6| 567|2009-06-14 これを次のように集計したいのです。 (ITEMidの登場回数順にソートして、実際の回数も出す) 232:3 156:2 567:1 サブクエリの使えない環境で、1回のSQLで集計することはできるでしょうか。できる場合実際のSQL文を教えていただければ幸いです。 テンポラリテーブル使えば自分でもできそうな気がするので、できれば使わない想定でお願いします。
- ベストアンサー
- MySQL
- 集計のSQL文について
SQLでの集計方法について質問です。 Oracle8iを使用しています。 あるテーブルに以下のようなレコードがあります。 ID 回数 値 1 1 100 1 2 200 1 3 300 2 1 150 2 2 550 .... この登録されている値をそのIDごとに、その回数まで回数ごとにサマリーした結果を出力したいのですが どうすればよいでしょうか。 ID 回数 値 1 1 100 ・・・(100) 1 2 300 ・・・(100+200) 1 3 600 ・・・(100+200+300) 2 1 150 ・・・(150) 2 2 700 ・・・(150+550) 宜しくお願いします
- ベストアンサー
- Oracle
- レコード集計のSQLについて
お世話になります。 SQL Serverに関する質問です。 以下の内容を満たすSQLを作成したいのですが、 方法がわからず困っています。 (内容) *************************************************************** ・Aテーブル、Bテーブルには、以下のレコードが格納されています。 [Aテーブル] | key_code | code1 | code2 | code3 | money | person | ← カラム名 ---------------------------------------------- | 001 | 1 | 1 | 1 | 1000 | 10 | ---------------------------------------------- | 001 | 1 | 2 | 1 | 3000 | 10 | ---------------------------------------------- | 001 | 1 | 1 | 1 | 1000 | 10 | ---------------------------------------------- [Bテーブル] | key_code | cd1 | cd2 | cd3 | cd4 | cd5 | ・・・・・ | cd10 | ← カラム名 ------------------------------------------------------------ | 001 | 01 | 02 | 10 | 30 | 51 | ・・・・・ | 90 | ------------------------------------------------------------ | 002 | 01 | 02 | 03 | 10 | 40 | ・・・・・ | 55 | ------------------------------------------------------------ ・Aテーブルの key_code とBテーブルの key_code を関連付けて、 Bテーブルのcd1~cd10に格納されている各コード単位に集計した Aテーブルのmoney及びpersonの値を取得したい。 例えば、 key_code = '000' でAテーブルとBテーブルを関連付けして、 Bテーブルのcd(1~10) = '10' で集計した Aテーブルの money と personの 値を求めたい。 **************************************************************** 初歩的な質問で申し訳ございませんが、 どなたかご教授願えませんでしょうか? よろしくお願いいたします。
- 締切済み
- SQL Server
- XAMPPのMySQLで削除済みレコードが表示される
XAMPPのMySQLで削除済みレコードが表示される XAMPP1.7.3をWinXP Proにて運用しています。 PHPにてselectのSQLを実行したところ、削除済みのレコードが表示されるため困っています。 これまでの経緯は 1.phpMyAdminにてDBとテーブルを作成し、サンプルデータを4件登録 2.PHPからselectで条件なしで全レコードが表示されるのを確認 3.条件をつけてselectし、それぞれの条件にマッチしたレコードが表示されるのを確認 4.phpMyAdminにて1レコードを削除 5.条件をつけてselectし、削除したレコードが表示されるのを発見 6.phpMyAdminのSQLで同じ条件のSQLを実行し、削除レコードが表示されないのを確認 7.PHP側のselect後にDBCloseをしているかの確認 8.phpMyAdminにてテーブルの修復、最適化などを実行 9.MySQLの再起動 以上の操作をしてみましたが、やはりPHPからのSQLの結果に削除されたレコードが表示されてしまいます。 色々なサイトで同じような現象のTipsがないか探しましたが、見つけきれず質問させていただきます。 同じような現象に対しての対応を紹介したサイトや、対処方法をご教授下さい。 よろしくお願いします。
- 締切済み
- MySQL
- php+MySQLでレコードが何行目かを知るには
お世話になります。 php+MySQLの環境でレコードが何行目になるかを 知る方法を教えてください。 まず下記のようなテーブルがあるとします。 | id | name | -------------------- | 1 | 山田 | | 2 | 田中 | | 3 | 中村 | | 5 | 山本 | idはAutoIncrementで振っています。 nameは重複することはありません。 レコードは更新状況により削除されることがあるため、 idは必ずしも連番になっているわけではありません。 このような状況で上のテーブルの「山本」を ORDER BY id ASC で取得する際に「山本は4行目である」 ということがわかる方法を教えてください。 よろしくお願いいたします。
- ベストアンサー
- MySQL
- MySQLへのレコード追加
VB6でMySQL4.1に接続して テーブル"table1"にレコードを追加したいんですけど MySQLには接続できるんですけど、新しいレコードを 追加できません。 エラーメッセージは Unknown column 'ID'in'fieldlist' とでます。 教えてください。 Dim SQL As String Dim ID As Integer Dim name As String Dim cmd As ADODB.Command Set cmd = New ADODB.Command ID = Text1.Text name = Text2.Text SQL = "insert into table1(AID,Aname) values(ID,name) " cmd.ActiveConnection = cn cmd.CommandText = SQL cmd.Execute table1の内容は AID Aname ←フィールド名 ------------- 1 suzuki 2 satou 3 takahasi みたいな感じです。
- ベストアンサー
- Visual Basic
- MySQLで別テーブルを参照し、レコードを消したい
お世話になります。MySQL4のデータベース上に2つのテーブルがあるのですが、 片方のテーブル(a)にあるフィールド(b_id)の値を参照し、もう片方のテーブル(b)のレコードを消していきたいのです。 具体的には以下のようなテーブル(a)とテーブル(b)があります。 TBL: a =========================== id b_id category =========================== 0 1 3 --------------------------- 1 2 1 --------------------------- 2 3 2 --------------------------- 3 4 2 --------------------------- TBL: b =========================== id name price =========================== 0 goodsA 1,000 --------------------------- 1 goodsB 500 --------------------------- 2 goodsC 250 --------------------------- 3 goodsD 2,500 --------------------------- 4 goodsE 1,800 --------------------------- やりたいことは、テーブル(a)の「category」フィールドが「2」以外であれば、 そのレコードの「b_id」にある数値を「id」にもつ、テーブル(b)のレコードを消していきたいのです。 上記の例だと、テーブル(a)のid「0」と「1」がcategoryに「2」以外を持っています。 この2つのレコードのb_idは「1」と「2」ですので、テーブル(b)のid「1」と「2」を消したいと思っています。 SQLについて知識がなく、困っています。どなたかご存知の方がいらっしゃいましたら、お知恵をお貸しください。 よろしくお願いします。
- 締切済み
- MySQL
- MySQLで1つのレコードだけに処理をする方法
MySQL初心者です。よろしくお願いします。 以下のようなテーブルがあったとして、UPDATEでレコード1つだけnumberから特定の数をマイナスしたいのですが、どうもやり方がわかりません。 id | name | number 1 aaa 100 2 bbb 200 3 ccc 300 3 ccc 300 2 bbb 200 例えば、id=2のレコードの中から1つだけ、numberからマイナスするといった処理を行いたい場合、以下のSQL文だとidが2のものすべてから数がマイナスされてしまいます。 UPDATE table SET number = number-50 WHERE id=2; すべてのレコードからマイナスするのではなく、id=2のレコードの中から1つだけマイナスしたいんです。。。 これをid=2の中で1つ目のレコードからだけマイナスする、といったようにうまく1つのレコードからマイナスする方法をご教示いただけるとありがたいです。 つたない文章で恐縮ですが、どうぞよろしくお願いいたします。
- ベストアンサー
- MySQL
- PHPでレコード追加(MYSQL)が出来ません
以下のようにするとうまくいってたのが、 ひとつフィールドを増やすとうまくいきません。 単純なミスだろうと思い、数時間格闘していますが見つかりません。 よろしくご教授お願いいたします。 MYSQL table mem id vacher(10) name vacher(100) pass varcher(8) regdate date PHP $sql = "insert into mem (id , name , pass ,regdate) values ('$id', '$name', '$pass', now())"; ↓↓↓↓↓↓ MYSQL table mem id vacher(10) name vacher(100) pass varcher(8) regdate date kikan varcher(100) PHP $sql = "insert into mem (id , name , pass ,regdate ,kikan) values ('$id', '$name', '$pass', now() ,'$kikan')";
- ベストアンサー
- MySQL
- MySQLでの売上集計
お世話になっております。MySQLのSQLに関する質問ですが、変数で処理しているため、PHPカテゴリで質問させて下さい。 テーブル:slip slip_no member_no sales_date 1 2 2013-06-06 2 1 2013-06-07 3 4 2013-06-08 4 3 2013-06-08 テーブル:sales sales_no sale_slip_no goods_no goods_name request_money receipt_money 1 1 2 キュウリ 5250 NULL 2 1 3 イチゴ 5250 NULL 3 2 6 バナナ 5250 NULL 4 2 5 りんご 5250 NULL 5 2 point NULL NULL 3000 6 3 1 ほうれん草 9450 NULL 7 3 4 しいたけ 2100 NULL 8 4 7 マンゴー 6300 NULL このようなテーブルがあります。(MySQL5) slip_noとsale_slip_noは紐付くデータで、slipテーブルにあるmember_no毎に、 salesテーブルのgoods_noが整数を条件に、request_moneyの1ヵ月前の期間内の request_moneyの合計を算出したいと考えております。 member_no 1を呼出したら、 total 10500 とこのように算出。 以前、http://okwave.jp/qa/q8117105.html こちらで、ご親切に回答頂き、解決したのですが、このテーブルに関連する質問を http://okwave.jp/qa/q8126398.html こちらで伺ったところ、ご親切に正規化を指摘され、テーブルを上記のように分割したという経緯が御座います。 以上のことから、 http://okwave.jp/qa/q8117105.html でアドバイス頂いたSQLを元に、inner join を用いて以下のようなSQLを試していますが、得たい結果を得ることが出来ません。 直接関係ないかもしれませんが、FROMの前にmember_noやsale_slip_no、slip_noなどのカラムを記述するとエラーになったりで、かれこれ3時間もこのSQLで格闘しています。 $sql = "SELECT SUM(request_money) FROM sales INNER JOIN slip ON sales.sale_slip_no = slip.slip_no WHERE slip.member_no = '1' AND sales.goods_no REGEXP '^[0-9]+$' AND slip.sales_date between curdate() - interval 1 month + interval 1 day AND curdate()"; $result = mysql_query($sql); $sum_point = mysql_fetch_assoc($result); $one_month_buy_money = $sum_point['SUM(request_money)']; 最近、質問ばかりで恐縮ですが、アドバイスのほど頂戴出来ればと質問させて頂きました。 お忙しい中恐縮ですが、宜しくお願い申し上げます。 .
- ベストアンサー
- PHP
お礼
yambejp様 集計することができました。 本当にありがとうございました。