よく使用されるデータベースである MySQL では、多くの操作が必要です。デジタル操作には非常に便利です。このセクションでは、参考としていくつかの統計事例を紹介します。 注文テーブルの例: テーブル `yyd_order` を作成します ( `id` bigint(20) 符号なし NOT NULL AUTO_INCREMENT, `user_id` int(11) NULLではない、 `order_nid` varchar(50) NOT NULL, `status` varchar(50) NOT NULL デフォルト '0', `money` 小数点(20,2) NOT NULL デフォルト '0.00', `create_time` タイムスタンプ NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` タイムスタンプ NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP、 主キー (`id`)、 キー `userid` (`user_id`), キー `createtime` (`create_time`)、 キー `updatetime` (`update_time`) )ENGINE=InnoDB; 1. 日、日付形式別に受注数をカウントする SELECT DATE_FORMAT(t.`create_time`, '%Y-%m-%d') t_date, COUNT(1) t_count FROM t_order t WHERE t.`create_time` > '2018-05-11' GROUP BY DATE_FORMAT(t.`create_time`, '%Y-%m-%d'); 2. 時間ごとに受注数をカウントする SELECT DATE_FORMAT(t.`create_time`, '%Y-%m-%d %H') t_hour, COUNT(1) t_count FROM t_order t WHERE t.`create_time` > '2018-05-11' GROUP BY DATE_FORMAT(t.`create_time`, '%Y-%m-%d %H'); 3. 昨日と比較した注文量の比較、時間順、日付順 DATE_FORMAT(t.`create_time`, '%Y-%m-%d %H') t_date, COUNT(1) t_count FROM yyd_order t WHERE t.`create_time` > '2018-05-11' GROUP BY DATE_FORMAT(t.`create_time`, '%Y-%m-%d %H') を選択 DATE_FORMAT(t.`create_time`, '%H'),DATE_FORMAT(t.`create_time`, '%Y-%m-%d %H'); で並べ替えます。 4. 先週の同じ時間と比較して、受注、日付、順序 DATE_FORMAT(t.`create_time`, '%Y-%m-%d %H') t_date, COUNT(1) t_count FROM yyd_order t WHERE を選択 DATE_FORMAT(t.`create_time`,'%Y-%m-%d') IN ('2018-05-03','2018-05-11') GROUP BY DATE_FORMAT(t.`create_time`, '%Y-%m-%d %H') DATE_FORMAT(t.`create_time`, '%H'),DATE_FORMAT(t.`create_time`, '%Y-%m-%d %H'); で並べ替えます。 5. 返された値をコメントフィールドでカウントし、コメントごとにグループ化します... DATE_FORMAT(t.`create_time`, '%Y-%m-%d') t_date, COUNT(1) t_count, SUBSTRING_INDEX(SUBSTRING_INDEX(t.`msg`, '{', -1), '}', 1) t_rsp_msg から選択します cmoo_tab t WHERE t.`create_time` > '2018-05-17' AND t.`rsp_msg` LIKE '%nextProcessCode%C9000%' GROUP BY DATE_FORMAT(t.`create_time`, '%Y-%m-%d'),SUBSTRING_INDEX(SUBSTRING_INDEX(t.`rsp_msg`, '{', -1), '}', 1); 6. 1時間ごとに各金額の間隔を数え、1 0の場合は合計し、それぞれを数えます。 SELECT DATE_FORMAT(t.create_time,'%Y-%m-%d') t_date, SUM(IF(t.`amount`>0 AND t.`amount`<1000, 1, 0)) t_0_1000, SUM(IF(t.`amount`>1000 AND t.`amount`<5000, 1, 0)) t_1_5000, SUM(IF(t.`amount`>5000, 1, 0)) t_5000m FROM mobp2p.`yyd_order` t WHERE t.`create_time` > '2018-05-11' GROUP BY DATE_FORMAT(t.`create_time`, '%Y-%m-%d'); 7. 入ってくる注文を30分ごとにカウントし、同様に10分、20分ごとにカウントします。 SELECT CONCAT(DATE_FORMAT(create_time, '%Y-%m-%d %H:' ),IF(FLOOR(DATE_FORMAT(create_time, '%i') / 30 ) = 0, '00','30')) AS time_scope, COUNT(*) FROM yyd_order WHERE create_time>'2018-05-11' GROUP BY time_scope ORDER BY DATE_FORMAT(create_time, '%H:%i'), DATE_FORMAT(create_time, '%Y-%m-%d') DESC; 8. 成功率、失敗率、一時テーブル結合時間 *から選択 (SELECT DATE_FORMAT(t.`create_time`, '%Y-%m-%d') t_date,COUNT(1) '成功数' FROM yyd_order t WHERE t.`create_time` > '2018-05-17' AND t.`status` = 'repay_yes' GROUP BY DATE_FORMAT(t.`create_time`, '%Y-%m-%d')) t1 右結合 (SELECT DATE_FORMAT(t.`create_time`, '%Y-%m-%d') t_date,COUNT(1) 'Total' FROM yyd_order t WHERE t.`create_time` > '2018-05-11' GROUP BY DATE_FORMAT(t.`create_time`, '%Y-%m-%d')) t2 ON t1.t_date=t2.t_date; 9. ログテーブルの最後のログステータス値を情報テーブルのステータスに更新し、a join b on xx set a.status=b.status where tmp group by userid tmp2を更新します。インデックスに注意してください。 t_order t0 を更新し、LEFT JOIN (SELECT * FROM (SELECT * FROM t_order_log t WHERE t.create_time>'2018-05-11' ORDER BY id DESC) t1 を実行します。 GROUP BY t1.user_id ) ON t.user_id=t2.user_id SET t0.`status`=t2.status WHERE t0.`create_time`>'2018-05-11' AND t0.`status`=10; 10. テーブルをバックアップし、select xxx where xxxとしてテーブルを作成します。 SELECT * FROM t_order として t_m テーブルを作成します。 11. テーブルをロックせずにメモを変更するだけで、すべてのタイプが一貫して高速に 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。 以下もご興味があるかもしれません:
|
>>: Linux の運用と保守で netstat の代わりに ss コマンドを使用する方法
type="radio" や type="checkbox"...
1. Dockerの起動の問題:問題は解決しました: Hyper-V をオンにする必要があります (...
指定したサイズより大きいファイルを検索するには、find コマンドを使用します。 検索 / -typ...
MVCC MVCC (Multi-Version Concurrency Control) は、マル...
ページの主要部分: <body> <ul id="メニュー"&...
目次1. ストアド関数を作成する2. ストアド関数の呼び出し3. 保存された関数を削除する4. スト...
通常、全員のスピーチを最初から最後まで読む必要があります。ただし、Stack Overflow には...
最近 Linux を研究していて、いくつかの Linux ディストリビューションを試してみましたが、...
コンピュータを再インストールし、最新バージョンのMySQLデータベースをインストールしました。その結...
ネットワークの問題のトラブルシューティング、新しい接続のセットアップ、ファイアウォールの構成を行うと...
目次道具プラグインをインストールするプロジェクトのルートディレクトリに.postcssrc.jsファ...
目次スロークエリの基礎: データ取得の最適化データベースから不要なデータが要求されていないか確認する...
01. 概要絶対パスと相対パスはシェル環境でよく使用され、それぞれに独自の用途があります。相対パスの...
目次序文ドローコールとはDrawCall はパフォーマンスにどのような影響を与えますか?ドローコール...
jdk をインストールします: Oracle 公式ダウンロード https://www.oracl...