如何获取表中所有列的计数(*)?使用 PostgreSql

2024-06-28

我有一堆表,其中几个有数百列。我需要获取每列的非空值计数,并且我一直在手动执行此操作。我想找出一种方法来获取表中所有列的所有计数。我查了 stackoverflow 和 google,但找不到答案。

我尝试了这个,但它只是为每列返回 1 的值。我知道它只是计算列数,而不是每列中的值。有什么建议么?

select count(COLUMN_NAME)
from information_schema.columns
where table_schema = 'schema_name'
and table_name = 'table_name'
group by COLUMN_NAME

COUNT(column_name)总是给你计数NON NULL values.

创建一个像这样的通用函数,它可以将模式名称和表名称作为参数。

在这里,我正在构建通过以下方式连接在一起的选择语句UNION ALL每个返回column_name的值以及动态执行时所有列的计数。

CREATE OR REPLACE FUNCTION public.get_count( TEXT, TEXT )
RETURNS  TABLE(t_column_name  TEXT, t_count BIGINT )
LANGUAGE plpgsql
AS $BODY$
DECLARE
p_schema        TEXT := $1;
p_tabname       TEXT := $2;
v_sql_statement TEXT;

BEGIN

SELECT STRING_AGG( 'SELECT ''' 
       || column_name 
       || ''',' 
       || ' count(' 
       || column_name 
       || ')  FROM ' 
       || table_schema 
       || '.' 
       || table_name 
         ,' UNION ALL ' ) INTO v_sql_statement
FROM   information_schema.columns 
WHERE  table_schema   = p_schema 
       AND table_name = p_tabname; 

    IF v_sql_statement IS NOT NULL THEN
     RETURN QUERY EXECUTE   v_sql_statement;
    END IF;
END
$BODY$;

执行

knayak=# select c.col, c.count from 
 public.get_count( 'public', 'employees' ) as c(col,count);
      col       | count
----------------+-------
 employee_id    |   107
 first_name     |   107
 last_name      |   107
 email          |   107
 phone_number   |   107
 hire_date      |   107
 job_id         |   107
 salary         |   107
 commission_pct |    35
 manager_id     |   106
 department_id  |   106
(11 rows)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取表中所有列的计数(*)?使用 PostgreSql 的相关文章

  • 如何测试网页代码?

    对于严重依赖状态的数据库后端开发编写测试代码 是否有人有一些好的提示 具体来说 我想为从数据库检索记录的代码编写测试 但答案将取决于数据库中的数据 可能会随着时间的推移而改变 人们通常是否会使用 冻结 数据库制作单独的开发系统 以便任何给定
  • Hibernate统计打印HQL:null

    我是使用休眠的新手 我打开了统计信息 与普通的 HQL 查询一起 我得到了许多这样的统计信息 INFO Statistics HQL null time 1724ms rows blah 有人可以以任何方式帮助我为什么null查询大约需要
  • Oracle 中的 if(条件, then, else)

    MySQL MSSQL 有一个简洁的小内联 if 函数 您可以在查询中使用它来检测空值 如下所示 SELECT foo a field AS a field SELECT if foo bar is null 0 foo bar AS ba
  • 部署 Visual Studio 2010 数据库项目

    我有一个 Visual Studio 2010 数据库项目 我想从中生成一个脚本 这只是将该数据库放到另一台机器上 问题是我找不到 对此的解决方案 当我开始这个项目时 我从开发电脑上的数据库导入了 shema 生成了架构对象 所有表和脚本都
  • 用于监视文件夹和更新数据库的 Python 守护进程

    这专门用于管理 MP3 文件 但它应该可以轻松地适用于任何包含大量文件的目录结构 我想找到或编写一个守护程序 最好用Python 来监视一个包含许多子文件夹的文件夹 这些子文件夹都应该包含X个MP3文件 每当添加 更新或删除文件时 它都应该
  • 邮政编码 10 位数字字符使用的约束检查

    我有一张桌子 上面有Char 10 列类型 命名postal Code我需要对所有值进行约束检查 就像 10 位数字一样1234567890没有别的 我使用以下内容 CONSTRAINT CH PCDigit CHECK PostalCod
  • MySQL 选择 table01 中不存在于 table02 的行[重复]

    这个问题在这里已经有答案了 我有两个表 table03 有 10 行 table01 有 21 行 现在我想从 table03 中获取 table01 中不存在的行 到目前为止我编写了这个查询 但它显示了 table03 的所有行 即使有些
  • 使用实体框架的子查询

    我正在移植一个子系统NHibernate to 实体框架并希望了解将以下查询移植到的最佳方法EF var date DateTime Now It can be any day AccountBalanceByDate abbd null
  • 如果值不为空,则更新数据库的 SQL 查询?

    我有一个大约有 17 个字段的表 我需要在此表中执行频繁更新 但问题是每次我可能只更新几个字段 在这种情况下编写更新查询的最佳方法是什么 我正在寻找一个选项 其中仅当值不为空时才会更新 例如 我在数据库中有四个字段 A B C D 用户更新
  • 如何在 SQL Server 中引用触发器的“新”、“旧”行?

    所以我是 SQLite 的 SQL Server 新手 我习惯使用 New Old 关键字 我看到有些人使用insertedvalue 引用新创建的行 但这仅适用于插入而不适用于更新 我能得到类似的东西吗New我在这个查询中使用 creat
  • SQL 中WITH 子句的使用指南

    我了解如何使用WITH递归查询子句 但我在理解它的一般用途 功能时遇到问题 例如 以下查询更新一条记录 其 id 是通过使用按时间戳返回第一条记录 id 的子查询来确定的 update global prospect psp set sta
  • 一张 400GB 表,一个查询 - 需要调优思路 (SQL2005)

    我有一个大表 我想对其进行优化 我正在使用 MS SQL 2005 服务器 我将尝试描述它的使用方式 如果有人有任何建议 我将非常感激 该表约400GB 有1亿行 每天插入100万行 该表有 8 列 1 列数据和 7 列用于查找 排序 k1
  • 行入列并分组

    我有一个如下所示的查询 SELECT OrganizationName OrganizationID ReceivableStatus InvoiceFee FROM v InvoicesFreelanceOutstanding ORDER
  • 如何将mysql的默认端口从3306更改为3360

    我想更改MySQL服务器的默认端口号 目前它是3306 我想将其更改为3360 我努力了 port 3360 但事情对我不起作用 请提供更改端口的查询 而不是任何配置 我使用的是 Windows 8 64 位 您需要编辑您的my cnf文件
  • JOOQ初始化DAO最佳方法

    我想知道初始化 JOOQ 生成 DAO 的最佳实践 现在 我使用以下方法来初始化 JOOQ 生成的 DAO 在以下情况下 Student Dao 是 JOOQ 生成的 public class ExtendedStudentDAO exte
  • 数据库(database/database.sqlite)不存在。来自工匠修补匠的数据库作品

    我在中创建了database sqlite文件database文件夹 我的 env文件内容是 DB CONNECTION sqlite DB HOST 127 0 0 1 DB PORT 3306 DB DATABASE absolute
  • 将 SQL 查询的 SELECT 子句解析为 PHP 数组

    这更多的是用于分析 PHP 中的查询before它被发送到服务器 我这样做的原因非常复杂 所以我不想深究其原因 在 PHP 中 我需要将字段选择存储到 PHP 数组中 以这个查询为例 SELECT user id username DATE
  • MySQL 将 COMMENT 添加到外键

    我正在将旧数据库 SyBase 转换为 MySQL 并且有以下 DDL 查询 ALTER TABLE DBA tab prodotto ADD FOREIGN KEY fkey idlinea tpr idlin REFERENCES DB
  • JavaFX ComboBox - 显示文本但在选择时返回 ID

    我有一个包含机场的数据库表 每个机场都有一个名称和一个 ID 在 JavaFX 中我有一个表单 其中包含ComboBox 组合框需要显示所有机场名称 并且在提交表单时需要将机场的 ID 插入数据库 而不是其名称 但我并没有真正弄清楚解决方案
  • NHibernate 排序(SQL 作为第二个选项)

    我正在使用 NHibernate 作为我的 ORM 并且正在尝试对一些数据进行排序 数据需要分页检索 我的请求表中的两列是 UrgencyID 和 CreateDate UrgencyID 是包含静态数据的 Urgency 表的 FK 1

随机推荐

  • 静态引用被清除——Android 是否会在运行时卸载未使用的类?

    我有一个关于类加载 垃圾收集在 Android 中如何工作的具体问题 我们已经多次遇到这个问题 据我所知 Android 的行为与普通 JVM 不同 问题是这样的 我们目前正在尝试减少应用程序中的单例类 转而使用单个根工厂单例 其唯一目的是
  • 用于在 XML 中存储设置的 C++ 库

    在我开始编写自己的设置库之前 我想尝试找到一个现有的设置库 我在 google 上搜索并发现了很多 C 或 MFC 的内容 但没有找到使用普通 C STL 的内容 我想要一些允许通过密钥访问的东西 例如 mySettings Root Su
  • 我应该使用 ExecuteNonQuery 来执行此数据库备份命令吗

    我有一种方法可以让我启动数据库备份 我想知道的是我是否应该在这种情况下使用 ExecuteNonQuery 或者是否有更好的东西可以使用 这是我目前的代码 public static void RunBackup string dbName
  • instanceof 被认为有害吗?

    我正在查看一些大量使用 Java 的代码instanceof操作员 我会抵制住细节的诱惑 因为这是一个普遍性的问题 instanceof让我想起了 C 的动态转换 以及我很久以前读过的关于它的建议 如果你认为你需要它 那么你的模型可能已经关
  • 在 Android 中运行 iptv 和 ts url

    我正在开发一个项目 需要播放器播放 ts 链接中的 iptv 我使用了 vitamio 播放器 但它会将链接加载为实体并在仅 23 秒后关闭 所以我的方法是在 onCompleteListener 中再次播放链接 它工作正常 但完成后需要很
  • 检索项目的父级时出错:找不到与给定名称“Theme.Base.AppCompat.DialogWhenLarge.Base”匹配的资源

    2014 11 22 07 46 34 aa D EclipseAndroidWorkspace Leaning exercise appcompat v7 res values large v14 themes base xml 19 e
  • Firebase 动态链接无法在 iOS 11.3.1 上安装应用程序后继续存在

    当用户未安装时 Firebase 动态链接无法在 iOS 11 3 1 上生存 还有其他人遇到这个问题吗 这在 iOS 11 3 1 之前工作正常 重现步骤 单击 FDL 链接 用户重定向到应用商店 用户安装应用程序 用户打开应用程序 FD
  • python_2_unicode_兼容错误

    I ve models py如下 from django contrib auth models import User from django db import models from django utils encoding imp
  • Boost.Spirit.Qi - 针对原始数据类型的边界检查

    我需要检查已解析的值qi uint 小于256 我偶然发现了一个SO post https stackoverflow com questions 30375750 constraining the existing boost spiri
  • 创建新表时 Postgres 客户端锁定

    我正在尝试在 postgres 中创建一个新表 但是当我这样做时 它只是在CREATE TABLE call sudo usermod s bin bash postgres sudo su postgres postgres host p
  • 比较结构指针、放弃成员和 UB

    考虑以下代码 int main typedef struct int first float second type type whole 1 2 0 void vp whole struct int first shorn vp prin
  • Sencha 淡入淡出效果的工作示例

    有人可以给我写完整的代码来向我展示如何使用 sencha touch 1 淡入和淡出 html 元素吗 具体来说 我需要知道需要包含哪些必要的 html javascript 和 css 文件 我一直在尝试在 div 元素上使用简单的淡入淡
  • Dask 分布式客户端在 jupyter 实验室中初始化需要很长时间

    尝试在 Jupyter 实验室中使用本地集群初始化客户端 但挂起 python 3 5 和 jupyter lab 0 35 会发生此行为 import dask dataframe as dd from dask import delay
  • Camel 与 BPM 中的工作流程

    我们使用 Apache Camel 作为工作流引擎 首先 我们有 WebService One 并等待响应 并根据响应调用 WebService 2 或 WebService 3 它是一个纯粹的工作流 并且有几个像这样的工作流步骤 我很少有
  • 使用 Springs 事务管理与使用 Hibernate 的优势

    我一直在尝试学习 spring 和 hibernate 并且我使用了网上的很多示例来构建一个不错的应用程序 然而 我现在意识到Spring支持事务管理 在我的 Spring 应用程序中 我只是简单地进行了我想要的任何调用 直接进入休眠状态
  • 如何从 Vim 中打开文件?

    我知道如何从终端在 Vim 中打开文件 vim fileName 我不知道当我已经在 Vim 中时如何打开文件 I tried r fileName 但这似乎将文件读取 或追加 到我打开的未保存的缓冲区中 它创建一个新文件 因为当我尝试用它
  • 使用 Java bean 作为 Grails 域类

    有很多类似的问题 但我无法确切地找到如何在 grails 应用程序中使用 POJO 模型 考虑以下 Java Bean package com example java public class UserBean String name S
  • 链接到 Django 页面的最佳方式

    我设法为我的索引创建一个 URL 标记 但现在我很困惑如何添加到其他页面的链接 我把这个放在我的urls py url r index name index 接下来我将此标签放入 href 中 url index 但是如果我想创建一个新页面
  • Flutter - 将文件保存到下载文件夹 - downloads_path_provider

    我正在使用 flutter 开发一个移动应用程序 为此我用了下载路径提供者 https pub dev packages downloads path provider获取手机的下载目录 模拟器返回 storage emulated 0 D
  • 如何获取表中所有列的计数(*)?使用 PostgreSql

    我有一堆表 其中几个有数百列 我需要获取每列的非空值计数 并且我一直在手动执行此操作 我想找出一种方法来获取表中所有列的所有计数 我查了 stackoverflow 和 google 但找不到答案 我尝试了这个 但它只是为每列返回 1 的值