【发布时间】:2019-04-24 06:28:30
【问题描述】:
让我们变得简单:我需要一个表中所有列的计数。是否可以循环遍历表名,而不是为每一列输入每个 COUNT(column_name)(如果有 >20 列)?
SELECT COUNT(column_1) AS column_1,
COUNT(column_2) AS column_2,
COUNT(column_3) AS column_3,
COUNT(column_4) AS column_4
FROM table
很高兴知道一个一般原则,它不仅适用于COUNT(),也适用于其他情况。
【问题讨论】:
-
我没有办法测试它,但是你考虑过使用UNION吗?
select count(YEAR) from TABLE union select count(MONTH) from TABLE -
我不知道它是否有帮助,但我编辑了我的问题,并且可能期望一些循环来逐个获取每个列名
-
唯一的选择是动态 SQL
-
据我所知,循环结构不是标准 SQL 的一部分,因此您必须创建一个存储例程来实现这一点。 MySQL 有
CREATE PROCEDURE和CREATE FUNCTION[SQL] 语句。