【问题标题】:MySQL COUNT of Grouped rows [duplicate]分组行的MySQL COUNT [重复]
【发布时间】:2020-11-30 05:23:20
【问题描述】:

我有下表“tbl_pads”,其中一列名为“id_pad”,共有 6 行:

pad_1 |
pad_1 |
pad_2 |
pad_3 |
pad_3 |
pad_3 |

SELECT id_pad FROM tbl_pads GROUP BY id_pad 我得到以下行:

pad_1 |
pad_2 |
pad_3 |

SELECT COUNT(id_pad) AS COUNT_PADS FROM tbl_pads GROUP BY id_pad 我得到以下行

2 | 
1 | 
3 |

如何获取 Grouped Statement 的行数?我期待结果 3

【问题讨论】:

  • @DanielW。我想你误解了这个问题。
  • @LikiCrus 刚才作为答案发布了。

标签: mysql sql select count


【解决方案1】:

另一个问题是你想获得不同id_pad 值的数量。一旦你这样说,使用不同的计数就会变得更清楚:

SELECT COUNT(DISTINCT id_pad) FROM tbl_pads

【讨论】:

    【解决方案2】:

    如果你想在单行中计算组语句的行数,那么你可以使用下面的查询。

    SELECT COUNT(id_pad) over() AS COUNT_PADS FROM tbl_pads group by id_pad limit 1;
    

    SELECT COUNT(DISTINCT id_pad) FROM tbl_pads;
    

    如果您想要基于组语句的多行并且行数与此一起计算,那么您可以使用此。

    SELECT COUNT(id_pad) over(), id_pad AS COUNT_PADS FROM tbl_pads group by id_pad;
    

    查看数据库小提琴:https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=97021f2b9a1cb360c1258a2bfb4e072a

    【讨论】:

      【解决方案3】:

      如果你想要单个 id_pad 的数量。

      CREATE TABLE tbl_pads
          (`id_pad` varchar(5))
      ;
          
      INSERT INTO tbl_pads
          (`id_pad`)
      VALUES
      ('pad_1'),
          ('pad_1'),
          ('pad_2'),
          ('pad_3'),
          ('pad_3'),
          ('pad_3')
      ;
      
      SELECT COUNT(id_pad) AS COUNT_PADS FROM tbl_pads WHERE id_pad = 'pad_3'
      
      | COUNT_PADS | | ---------: | | 3 |

      db小提琴here

      【讨论】:

      • 我认为你误解了这个问题。
      • @Barmar 你是绝对正确的
      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 2013-11-28
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      相关资源
      最近更新 更多