gpt4 book ai didi

sql - 如何动态查询列名?

转载 作者:行者123 更新时间:2023-11-29 13:00:06 33 4
gpt4 key购买 nike

考虑以下用于 PostgreSQL DBMS (9.3) 的 SQL 代码:

SELECT 
column_name, (SELECT count(*) FROM _TABLE_NAME_ WHERE column_name = 'X')
FROM
information_schema.columns
WHERE
table_schema = '_SCHEMA_NAME_'
AND
table_name = '_TABLE_NAME_';

我想在内部查询中使用从外部查询检索到的 column_names 作为列名(元)。有没有办法在一个 SELECT 语句中执行此操作(多个内部 SELECT 语句也可以)?

示例:

enter image description here

最佳答案

您不需要元表,您需要一个逆透视查询。使用相当新的 pg,您可以使用 JSON functions 实现它像这样:

SELECT key
,count(*) FILTER (WHERE value = 'X')
FROM _TABLE_NAME_
,json_each_text(row_to_json( _TABLE_NAME_)) AS unpivot
GROUP BY key;

关于sql - 如何动态查询列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32840548/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com