<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # mysql 查詢一張表中某個字段不同狀態的數量統計 最近統計數據的時候有這樣的業務需求,統計一張表里面一個字段不同的類型值數量多少,不可能每個類型值都寫一遍語句吧! ![![](https://img.kancloud.cn/11/c5/11c551294801bf07ec32d448c048ed30_1194x579.png)](images/screenshot_1641798543853.png) 其中 origin 是用戶來源,其中的值有 iPhone 、Android 、Web 三種,現在需要分別統計由這三種渠道注冊的用戶數量。 **解決方案1** ~~~ SELECT count(*) FROM user_operation_log WHERE origin = 'iPhone'; SELECT count(*) FROM user_operation_log WHERE origin = 'Android'; SELECT count(*) FROM user_operation_log WHERE origin = 'Web'; ~~~ 用 where 語句分別統計各自的數量。 這樣查詢的量有點多了,如果這個值有 10 個呢,那還得寫 10 條相似的語句,很麻煩。 有沒有一條語句就搞定的呢?于是去查了些資料。 **解決方案2** 我們知道 count 不僅可以用來統計行數,也能統計列值的數量,例如: 統計 user_operation_log 有多少行: `SELECT count(*) FROM user_operation_log` 統計 origin 這列值不為 NULL 的數量: ``` SELECT count(origin) FROM user_operation_log ``` 所以我們可以利用這個特性來實現上面的需求 **第一種寫法(用 count 實現)** ``` SELECT count(origin = 'iPhone' OR NULL) AS iPhone, count(origin = 'Android' OR NULL) AS Android, count(origin = 'Web' OR NULL) AS Web FROM user_operation_log; ``` 查詢結果 ![](https://img.jbzj.com/file_images/article/201704/2017428141215359.png?2017328141225) **第二種寫法(用 sum 實現)** ``` SELECT sum(if(origin = 'iPhone', 1, 0)) AS iPhone, sum(if(origin = 'Android', 1, 0)) AS Android, sum(if(origin = 'Web', 1, 0)) AS Web FROM user_operation_log; ``` 查詢結果 ![](https://img.jbzj.com/file_images/article/201704/2017428141215359.png?2017328141225) **第三種寫法(改寫 sum)** ~~~ SELECT sum(origin = 'iPhone') AS iPhone, sum(origin = 'Android') AS Android, sum(origin = 'Web') AS Web FROM user_operation_log; ~~~ 查詢結果 ![](https://img.jbzj.com/file_images/article/201704/2017428141215359.png?2017328141225) **第四種寫法(來自掘金用戶 杰夫 的答案)** ``` SELECT origin,count(*) num FROM user_operation_log GROUP BY origin; ``` 查詢結果 ![](https://img.jbzj.com/file_images/article/201704/2017428141350746.png?2017328141358) 至此,已經達到了我們的需求。 我用了解決方案2里面的第一種和第三種 轉載:https://www.jb51.net/article/112492.htm ··· SELECT * FROM test; SELECT *, sum(type = 1) AS type1, sum(type = 0) AS type0 FROM test GROUP BY no; SELECT *, count(type = 1 OR NULL) AS type1, count(type = 0 OR NULL) AS type0 FROM test GROUP BY no; SELECT *, sum(if(type = 1,1,0)) AS type1, sum(if(type = 0,1,0)) AS type0 FROM test GROUP BY no; ![](https://img.kancloud.cn/0b/24/0b248772d726e0788b5ed3919e044a4a_340x184.png) ![](https://img.kancloud.cn/3c/4a/3c4a5a054c6a571d2462f73bf3696f83_381x106.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看