如何按表的次数顺序列出表';你在MYSQL中使用过吗?
我需要让脚本列出关系表的名称以及每个表被使用的总次数 结果必须按每个关系表使用的总次数的降序排列 以下是我目前的代码:如何按表的次数顺序列出表';你在MYSQL中使用过吗?,mysql,sql,Mysql,Sql,我需要让脚本列出关系表的名称以及每个表被使用的总次数 结果必须按每个关系表使用的总次数的降序排列 以下是我目前的代码: WITH ALLDRINKS_COUNT AS ( SELECT 'ALLDRINKS' TABLE_NAME, COUNT(*) FROM mysql.general_log WHERE argument LIKE '%ALLDRINKS%'), SERVES_COUNT AS( SELECT 'SERVES' TABLE_NAME, COUNT(*) FROM mysql.
WITH ALLDRINKS_COUNT AS (
SELECT 'ALLDRINKS' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%ALLDRINKS%'),
SERVES_COUNT AS(
SELECT 'SERVES' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%SERVES%'),
ORDERS_COUNT AS (
SELECT 'ORDERS' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%ORDERS%'),
LIKES_COUNT AS (
SELECT 'LIKES' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%LIKES%'),
LOCATED_COUNT AS (
SELECT 'LOCATED' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%LOCATED%'),
DRINKERS_COUNT AS (
SELECT 'DRINKERS' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%DRINKERS%')
SELECT * FROM ALLDRINKS_COUNT
UNION
SELECT * FROM SERVES_COUNT
UNION
SELECT * FROM ORDERS_COUNT
UNION
SELECT * FROM LIKES_COUNT
UNION
SELECT * FROM LOCATED_COUNT
UNION
SELECT * FROM DRINKERS_COUNT;
下面是输出的样子:
+------------+----------+
| TABLE_NAME | COUNT(*) |
+------------+----------+
| ALLDRINKS | 5 |
| SERVES | 12 |
| ORDERS | 6 |
| LIKES | 5 |
| LOCATED | 1 |
| DRINKERS | 2 |
+------------+----------+
6 rows in set (0.00 sec)
所需输出为:
+------------+----------+
| TABLE_NAME | COUNT(*) |
+------------+----------+
| SERVES | 12 |
| ORDERS | 6 |
| ALLDRINKS | 5 |
| LIKES | 5 |
| DIRNKERS | 2 |
| LOCATED | 1 |
+------------+----------+
6 rows in set (0.00 sec)
尝试这样子查询查询
SELECT TABLE_NAME, COUNT_A FROM(
WITH ALLDRINKS_COUNT AS (
SELECT 'ALLDRINKS' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%ALLDRINKS%'),
SERVES_COUNT AS(
SELECT 'SERVES' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%SERVES%'),
ORDERS_COUNT AS (
SELECT 'ORDERS' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%ORDERS%'),
LIKES_COUNT AS (
SELECT 'LIKES' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%LIKES%'),
LOCATED_COUNT AS (
SELECT 'LOCATED' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%LOCATED%'),
DRINKERS_COUNT AS (
SELECT 'DRINKERS' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%DRINKERS%')
SELECT TABLE_NAME, COUNT(*) AS COUNT_A FROM ALLDRINKS_COUNT
UNION
SELECT TABLE_NAME, COUNT(*) AS COUNT_A FROM SERVES_COUNT
UNION
SELECT TABLE_NAME, COUNT(*) AS COUNT_A FROM ORDERS_COUNT
UNION
SELECT TABLE_NAME, COUNT(*) AS COUNT_A FROM LIKES_COUNT
UNION
SELECT TABLE_NAME, COUNT(*) AS COUNT_A FROM LOCATED_COUNT
UNION
SELECT TABLE_NAME, COUNT(*) AS COUNT_A FROM DRINKERS_COUNT) t
ORDER BY COUNT_A DESC;
尝试这样子查询查询
SELECT TABLE_NAME, COUNT_A FROM(
WITH ALLDRINKS_COUNT AS (
SELECT 'ALLDRINKS' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%ALLDRINKS%'),
SERVES_COUNT AS(
SELECT 'SERVES' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%SERVES%'),
ORDERS_COUNT AS (
SELECT 'ORDERS' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%ORDERS%'),
LIKES_COUNT AS (
SELECT 'LIKES' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%LIKES%'),
LOCATED_COUNT AS (
SELECT 'LOCATED' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%LOCATED%'),
DRINKERS_COUNT AS (
SELECT 'DRINKERS' TABLE_NAME, COUNT(*)
FROM mysql.general_log
WHERE argument LIKE '%DRINKERS%')
SELECT TABLE_NAME, COUNT(*) AS COUNT_A FROM ALLDRINKS_COUNT
UNION
SELECT TABLE_NAME, COUNT(*) AS COUNT_A FROM SERVES_COUNT
UNION
SELECT TABLE_NAME, COUNT(*) AS COUNT_A FROM ORDERS_COUNT
UNION
SELECT TABLE_NAME, COUNT(*) AS COUNT_A FROM LIKES_COUNT
UNION
SELECT TABLE_NAME, COUNT(*) AS COUNT_A FROM LOCATED_COUNT
UNION
SELECT TABLE_NAME, COUNT(*) AS COUNT_A FROM DRINKERS_COUNT) t
ORDER BY COUNT_A DESC;
错误1140(42000):在没有GROUP BY的聚合查询中,SELECT列表的表达式#1包含未聚合的列“ALLDRINKS_COUNT.TABLE_NAME”;这与sql_mode=only_full_group_byI不兼容我只参与了您的查询的一部分,我没有数据示例来运行任何测试,但我假设您的查询正在运行,因此解决方案应该可以运行。错误1140(42000):在没有分组依据的聚合查询中,选择列表的表达式#1包含未聚合的列“AllDiffers_COUNT.TABLE_NAME”;这与sql_mode=only_full_group_By不兼容我只接受了你查询的一部分,我没有数据示例可以运行任何测试,但我假设你的查询正常,因此解决方案应该正常。请参阅:请参阅: