Tag: 窗口函数

计算PostgreSQL中的累计和

我想查找字段的累积或运行量,并将其从登台插入到表中。 我的分期结构是这样的: ea_month id amount ea_year circle_id April 92570 1000 2014 1 April 92571 3000 2014 2 April 92572 2000 2014 3 March 92573 3000 2014 1 March 92574 2500 2014 2 March 92575 3750 2014 3 February 92576 2000 2014 1 February 92577 2500 2014 2 February 92578 1450 2014 3 我希望我的目标表看起来像这样: ea_month id […]

Oracle中的OVER子句

Oracle中OVER子句的含义是什么?

在postgres中select行号

如何在postgres中select行号。 我试过这个: select row_number() over (ORDER BY cgcode_odc_mapping_id)as rownum, cgcode_odc_mapping_id from access_odc.access_odc_mapping_tb order by cgcode_odc_mapping_id 并得到这个错误: 错误:语法错误处于或接近“over” 第1行:selectrow_number()over(ORDER BY cgcode_odc_mapping_id)as 我已经检查了这些页面: 如何在PostgreSQL查询中显示行号? 这是我的查询: select row_number() over (ORDER BY cgcode_odc_mapping_id)as rownum,cgcode_odc_mapping_id from access_odc.access_odc_mapping_tb order by cgcode_odc_mapping_id 这是错误的: 错误:在“over”处或附近的语法错误LINE 1:select row_number()over(ORDER BY cgcode_odc_mapping_id)as

pandas的好方法是获得每个组中的前n个logging

假设我有这样的pandasDataFrame: >>> df = pd.DataFrame({'id':[1,1,1,2,2,2,2,3,4],'value':[1,2,3,1,2,3,4,1,1]}) >>> df id value 0 1 1 1 1 2 2 1 3 3 2 1 4 2 2 5 2 3 6 2 4 7 3 1 8 4 1 我想获得每个id的前2个logging的新的DataFrame,像这样: id value 0 1 1 1 1 2 3 2 1 4 2 2 7 3 1 8 […]

Oracle“分区依据”关键字

有人可以解释一下partition by关键字partition by什么,并给出一个简单的例子,以及为什么要使用它? 我有一个由其他人写的SQL查询,我试图找出它的作用。 分区的一个例子是: SELECT empno, deptno, COUNT(*) OVER (PARTITION BY deptno) DEPT_COUNT FROM emp 我在网上看到的例子似乎有点太深入。

SQL Server:PARTITION BY和GROUP BY之间的区别

多年来,我一直在使用GROUP BY来处理所有types的聚合查询。 最近,我已经反编译了一些使用PARTITION BY来执行聚合的代码。 在阅读关于PARTITION BY所有文档时,它听起来很像GROUP BY ,可能是添加了一些额外的function? 它们是相同的一般function的两个版本,还是完全不同的?

获取连接表格列的不同总和

我在这里有一个问题,我希望有一个简单的解决scheme。 我会尽可能简单地做到这一点: 一张票属于一个参加者 例: select * from tickets JOIN attendees ON attendee.id = tickets.attendee_id 与会者有一个称为“收入”的小数列 也就是说,我需要运行一个查询,返回有关门票的各种信息,包括总收入。 问题是,如果2张门票属于同一个参与者,那么它会将收入计入两次。 我如何才能将与会者的收入总计一次? 我不想使用子查询,因为我的ORM使这很难。 另外一个子查询解决scheme不能缩放,如果我想这样做多个列。 这是我有: 1位参与者,收入为100美元 两张门票都属于该参与者 Select count(tickets.*) as tickets_count , sum(attendees.revenue) as atendees_revenue from tickets LEFT OUTER JOIN attendees ON attendees.id = tickets.attendee_id; =>这告诉我, attendees_revenue是200.我希望它是100.因为在数据库中有一个参与者与existing_revenue为100.我不希望与会者被重复计数。 请让我知道这是否可能。

GROUP BY和聚合的顺序数值

使用PostgreSQL 9.0。 比方说,我有一张包含company , profession和year的表格。 我想返回一个结果,其中包含独特的公司和行业,但基于数字序列聚合(到一个数组是罚款)年: 示例表: +—————————–+ | company | profession | year | +———+————+——+ | Google | Programmer | 2000 | | Google | Sales | 2000 | | Google | Sales | 2001 | | Google | Sales | 2002 | | Google | Sales | 2004 | | Mozilla | Sales […]

oracle中的RANK()和DENSE_RANK()函数有什么区别?

RANK()和DENSE_RANK()函数有什么区别? 如何find以下emptbl表中的第n个工资? DEPTNO EMPNAME SAL —————————— 10 rrr 10000.00 11 nnn 20000.00 11 mmm 5000.00 12 kkk 30000.00 10 fff 40000.00 10 ddd 40000.00 10 bbb 50000.00 10 ccc 50000.00 如果表中的数据为nulls ,如果我想找出nth工资,会发生什么?

Postgres窗口function和组例外

我试图把一个查询,将检索一个用户的统计数据(利润/损失)作为累积的结果,在一段时间。 以下是我到目前为止的查询: SELECT p.name, e.date, sum(sp.payout) OVER (ORDER BY e.date) – sum(s.buyin) OVER (ORDER BY e.date) AS "Profit/Loss" FROM result r JOIN game g ON r.game_id = g.game_id JOIN event e ON g.event_id = e.event_id JOIN structure s ON g.structure_id = s.structure_id JOIN structure_payout sp ON g.structure_id = sp.structure_id AND r.position = sp.position JOIN player […]