找出包含其他列值中最大計數值的記錄的 MySQL 查詢?


為此,請使用 GROUP BY HAVING 子句。讓我們首先建立一個表 -

mysql> create table DemoTable
(
   Value int
);
Query OK, 0 rows affected (0.54 sec)

使用 insert 命令在表中插入一些記錄 -

mysql> insert into DemoTable values(88);
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values(88);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(88);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(99);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(99);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(99);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(99);
Query OK, 1 row affected (0.07 sec)
mysql> insert into DemoTable values(100);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values(100);
Query OK, 1 row affected (0.07 sec)
mysql> insert into DemoTable values(88);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values(88);
Query OK, 1 row affected (0.11 sec)

使用 select 語句顯示錶中的所有記錄 -

mysql> select *from DemoTable;

這將產生以下輸出 -

+-------+
| Value |
+-------+
|    88 |
|    88 |
|    88 |
|    99 |
|    99 |
|    99 |
|    99 |
|   100 |
|   100 |
|    88 |
|    88 |
+-------+
11 rows in set (0.00 sec)

以下是顯示組中具有最大計數值並帶有其他列的記錄的查詢。這裡,我們在一列中有重複的值,並且我們正在對這些值進行排序。在 ORDER BY DESC 之後,我們獲取第一個值,並將其計數顯示在新列“NumberOfCount”中 -

mysql> select Value,count(*) as NumberOfCount
   from DemoTable
   group by Value
   having count(*)=(select count(*) as NumberOfCount
      from DemoTable
      group by Value
      order by NumberOfCount desc
      limit 1);

這將產生以下輸出 -

+-------+---------------+
| Value | NumberOfCount |
+-------+---------------+
|    88 |             5 |
+-------+---------------+
1 row in set (0.00 sec)

更新於: 2019 年 10 月 4 日

328 瀏覽

啟動你的 職業

完成課程即可獲得認證

開始學習
廣告