我有各种模式,其中包含一个名为c_lartaction的表.在某些模式中,该表包含名为"CREATOR"列,但在其他模式中,缺少该列.

我可以相当容易地看到左连接的运行状态(所有实例都有一个‘OID’列):

select c1.table_schema, c1.table_name, c1.column_name, 
c2.table_schema, c2.table_name, c2.column_name
from information_schema.columns as c1
left join information_schema.columns as c2 on
    c1.table_schema = c2.table_schema
    and c1.table_name = c2.table_name
    and c2.column_name = 'creator'
where c1.table_name = 'c_alertaction'
and c1.column_name = 'oid';

然而,我确信我可以使用聚合函数在没有左连接的情况下完成这项工作,但到目前为止,我被难住了.

以下是我的try :

select c.table_schema, count(*) as CreatorCount
from information_schema.columns as c
where c.table_name = 'c_alertaction'
and c.column_name = 'creator'
group by c.table_schema;

但这将只报告具有该列的架构.

有什么建议/线索/pip 吗?

推荐答案

请参见示例

select c.table_schema
  ,sum(case when c.column_name = 'creator' then 1 else 0 end) as CreatorCount
from information_schema.columns as c
where c.table_name = 'c_alertaction'
group by c.table_schema;

Mysql相关问答推荐

mysql查询汇总数据

为什么IN子句中有GROUP BY会导致查询变得不可执行?

如何在Sequelize中将查询作为选项?

如何在MySQL中检索两列的值不同的行

SQL不断返回查询失败,并且不知道从这里到哪里go

SQL:如何 Select 每个客户最后购买的产品?

将 Cloud Function (nodejs) 连接到 CloudSQL mySQL 数据库

Mysql根据文本语言或行数将列拆分为多列

有没有更好的方法在无限滚动的网页上呈现获取的提要数据?

从 2 个不同的表中获取数据并将它们加入 sql

如何在考虑另一表的值的情况下计算一列的值

我将如何构建一个 SQL 查询来从交易表中 Select 第一次存款、第二次存款和额外存款

mysql中float(2,2)和float()的区别

MySQL - 在 MySQL UPDATE 或 SELECT 查询中使用 If Then Else

将 Blob 转换为字节数组的最简单方法

在 Mac 上设置 Laravel php artisan migrate 错误:没有这样的文件或目录

使用 mysqldriver 连接数据库时出错

PHP mySQL - 将新记录插入表中,主键自动递增

在 MySQL 中存储 IPv6 地址

cron 启动的 mysqldump 和密码安全