当前位置: 首页 > 面试题库 >

每小时数据透视表

赖诚
2023-03-14
问题内容

我想显示以下给定记录的数据透视表:

我有一个fooo包含两列的表:

create table fooo (
cola varchar(5),
colb time
);

插入一些记录:

insert into fooo values
  ('a','10:00:00'), ('a','10:30:00'), ('b','20:00:00'), ('c','13:00:00')
, ('d','01:00:00'), ('e','10:10:00'), ('f','02:01:00'), ('g','02:20:00')
, ('h','04:00:00'), ('i','05:00:00'), ('j','06:00:00'), ('k','07:00:00')
, ('l','08:00:00'), ('m','09:00:00'), ('n','22:00:00'), ('o','23:00:00');

预期的输出应类似于以下格式:

预期产量:

cola  01  02  03  04  05  06  07  08  09  10  11  12  13  14  15  16  17  18  19  20  21  22  23    
-------------------------------------------------------------------------------------------------
a                                         2
b                                                                                 1
c                                                     1
d     1
e                                         1
f         1
g         1
h                 1
i                     1
j                         1
k                             1    
l                                 1
m                                     1
n                                                                                          1                   
o                                                                                              1

问题答案:
SELECT * FROM crosstab(
       'SELECT cola, EXTRACT(HOUR from colb) AS h, count(*) AS ct
        FROM   fooo
        GROUP  BY 1, 2
        ORDER  BY 1, 2'

       ,'SELECT g::float8 FROM generate_series(0,23) g'
   ) AS ct (cola text
      , h00 int, h01 int, h02 int, h03 int, h04 int, h05 int
      , h06 int, h07 int, h08 int, h09 int, h10 int, h11 int
      , h12 int, h13 int, h14 int, h15 int, h16 int, h17 int
      , h18 int, h19 int, h20 int, h21 int, h22 int, h23 int);

助手:
您忘记了0/24小时。
使用带有前导字符的列名称可以避免使用双引号。

细节:

  • PostgreSQL交叉表查询


 类似资料:
  • A 数据透视表介绍 B.1 什么是数据透视表? 数据透视表是一种可以快速汇总、分析大量数据表格的交互式工具。使用数据透视表可以按照数据表格的不同字段从多个角度进行透视,并建立交叉表格,用以查看数据表格不同层面的汇总信息、分析结果以及摘要数据。使用数据透视表可以深入分析数值数据,以帮助用户发现关键数据,并做出有关企业中关键数据的决策。 数据透视表是针对以下用途特别设计的:以友好的方式,查看大量的数据

  • 数据透视表显示二维交集的度量值,并在表格视图中表示数据。 图表属性 选择图表类型后,可以更改其属性来自定义图表: 选项 描述 常规 背景颜色 设置图表区域的背景颜色。 不透明度 设置背景颜色的不透明度。 显示边框 显示图表外部边框。 边界颜色 设置图表外部边框的颜色。 显示标题 显示图表的主要标题。 标题 指定图表的标题。 标题字体 设置标题的字体样式。 位置 设置标题的位置。 对齐 设置标题的水

  • 数据透视表显示二维交集的度量值,并在表格视图中表示数据。 图表属性 选择图表类型后,可以更改其属性来自定义图表: 选项 描述 常规 背景颜色 设置图表区域的背景颜色。 显示边框 显示图表外部边框。 边界颜色 设置图表外部边框的颜色。 显示标题 显示图表的主要标题。 标题 指定图表的标题。 标题字体 设置标题的字体样式。 位置 设置标题的位置。 对齐 设置标题的水平对齐方式。 数据 字体 设置字段名

  • 数据透视表显示二维交集的度量值,并在表格视图中表示数据。 图表属性 选择图表类型后,可以更改其属性来自定义图表: 选项 描述 常规 背景颜色 设置图表区域的背景颜色。 不透明度 设置背景颜色的不透明度。 显示边框 显示图表外部边框。 边界颜色 设置图表外部边框的颜色。 显示标题 显示图表的主要标题。 标题 指定图表的标题。 标题字体 设置标题的字体样式。 位置 设置标题的位置。 对齐 设置标题的水

  • 问题内容: 我在SQL Server中的数据格式如下。 我需要的是能够以以下格式显示数据。 是否有可能做到这一点?我在SQL Server中尝试了数据透视,但是它仅返回一条记录。有人可以帮忙吗? 问题答案: 您可以使用PIVOT函数获取结果,我只需将windowing函数应用于数据,以便可以为每个返回多个行: 请参阅带有演示的SQL Fiddle。 您还可以将聚合函数与CASE表达式一起使用以获取

  • 问题内容: 什么是在php / MySQL中处理数据透视表的最佳方法(或达到这种效果的方法) 我有一个查询,返回的信息如下 我想用PHP建立一个报表,该报表按每周开始的列标题按组进行计数。例如 但是我不确定从哪里开始,因为标题是动态的,具体取决于报表运行的月份。 我知道如何传递月份的详细信息并检索PHP中的所有数据,但是当前它只输出到一列中,而不是能够分组并放入数组中。 任何帮助表示赞赏! 问题答