【发布时间】:2016-11-11 09:09:20
【问题描述】:
我在 Vertica 数据库中有下表
+---------+-------+
| ReadOut | Event |
+---------+-------+
| 1 | A |
| 1 | A |
| 1 | B |
| 1 | B |
| 2 | A |
| 2 | B |
| 2 | B |
+---------+-------+
我正在尝试获取每次读取的每个事件的频率。也许我在这种情况下误用了“频率”这个词,但理想情况下,最后我会有一个这样的表格:
+-----------+---------+---------+--+
| Frequency | Event_A | Event_B | |
+-----------+---------+---------+--+
| 1 | 1 | 0 | |
| 2 | 1 | 2 | |
| 3 | 0 | 0 | |
| 4 | 0 | 0 | |
| . | 0 | 0 | |
| . | 0 | 0 | |
| . | 0 | 0 | |
+-----------+---------+---------+--+
到目前为止,我在 python 中实现了一个 for 循环,看起来像这样(简化版):
# get all the available event names
Eventlist=SELECT DISTINCT Event FROM table
# loop over each event to get the frequency
for ii in Eventlist:
SELECT count(Readout) FROM table WHERE Event = ii group by Readout
但缺点是我需要提前知道事件的名称,这需要单独的查询,而且我必须运行一堆循环。 有没有更优雅的方式来做到这一点。 谢谢大佬
【问题讨论】:
-
您缺少序列/时间戳列
-
@DuduMarkovitz 你能详细说明一下吗?
-
对不起,我的错......