序文 この記事で実装されている要件は、実際には非常に一般的です。たとえば、ユーザーが登録したチャネルをマークするためのユーザー ソース テーブルがあります。テーブル構造は以下のようになります… Origin はユーザーのソースであり、その値には iPhone、Android、Web が含まれます。ここで、これら 3 つのチャネルで登録されたユーザーの数を個別にカウントする必要があります。 解決策1 SELECT カウント(*) user_operation_log から origin = 'iPhone'; SELECT カウント(*) user_operation_log から origin = 'Android'; の場合 SELECT カウント(*) user_operation_log から ここで origin = 'Web'; where ステートメントを使用して、それぞれの数量をカウントします。 これはクエリが多すぎます。値が 10 個ある場合は、同様のステートメントを 10 個記述する必要があり、非常に面倒です。 それを実行できる単一のステートメントはありますか?そこで情報を調べに行きました。 解決策2 count は行の数を数えるだけでなく、列の値の数を数えるのにも使用できることがわかっています。次に例を示します。 user_operation_log の行数を数えます: user_operation_logからcount(*)を選択します 元の列にあるNULLではない値の数を数えます。 user_operation_log から count(origin) を選択 この機能を使用して上記の要件を達成することができます 最初の書き方(countを使用) 選択 count(origin = 'iPhone' OR NULL) AS iPhone、 count(origin = 'Android' OR NULL) AS Android、 count(origin = 'Web' OR NULL) AS Web user_operation_log から; クエリ結果 2番目の書き方(sumを使用) 選択 sum(if(origin = 'iPhone', 1, 0)) AS iPhone、 sum(if(origin = 'Android', 1, 0)) AS Android、 sum(if(origin = 'Web', 1, 0)) AS Web user_operation_log から; クエリ結果 3番目の書き方(書き直し合計) 選択 sum(origin = 'iPhone') AS iPhone、 sum(origin = 'Android') Androidとして、 sum(origin = 'Web') AS Web user_operation_log から; クエリ結果 4番目の書き方(NuggetsユーザーのJeffの回答より) SELECT origin,count(*) num FROM user_operation_log GROUP BY origin; クエリ結果 これまでのところ、私たちのニーズは満たされています。 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただき、ありがとうございます。 以下もご興味があるかもしれません:
|
<<: リンクされた画像をダウンロードしてアップロードするJavaScriptの実装
>>: Linux で MySQL スケジュール タスク バックアップ データを実装する方法
この記事では、よく使用される MySQL 関数について説明します。ご参考までに、詳細は以下の通りです...
背景 - オンラインアラートオンライン サーバーがアラームを発し、ディスク使用率 disk.util...
ページドメインの関係:メインページ a.html はドメイン A: www.jb51.net に属し...
TypeScript バンドルwebpack 統合通常、実際の開発では、ビルド ツールを使用してコー...
プロジェクトのテスト環境データベースのデータが失われてしまったので、記録しておきたいと思います。当時...
ラジオボタンとチェックボックスラジオボタンとチェックボックスの効果を実現するための純粋な CSSラジ...
VMware が異常シャットダウンした後、再起動すると「この構成ファイルを排他的にロックできませんで...
目次実際のプロジェクトで遭遇する要件実装が間違っているところもある私は個人的に、実装するより良い方法...
この記事では、WeChatアプレットでジグソーパズルゲームを実装するための具体的なコードを参考までに...
HTMLでCSSを定義するには、埋め込み、リンク、インラインの3つの方法が一般的に使用されます。 1...
MySQLの起動失敗の解決策MySQLを起動できませんmysqlを停止した後、いくつかの操作(ホスト...
アップグレードの背景: MySQLの下位バージョンの脆弱性を解決するために、MySQLはMySQL ...
シェル スクリプトで電子メールを作成する必要がある場合は、コマンド ラインから電子メールを送信する知...
この記事のガイド: テーブル内のデータを削除するには、削除と切り捨ての 2 つの方法があります。TR...
大量のデータを扱うシステムの中には、クエリ効率の低さやデータの保存時間の長さといったデータベースの問...