在子查询中计算唯一值

时间:2018-10-30 18:30:58

标签: postgresql

我有两个表,职位和投票,其中投票具有post_id。我想计算有1票,2票,3票等等的帖子。

当我使用此查询时

select count(post_id) from votes group by post_id

我得到以下结果

3
3
1
2
2
2
1

现在我想算出我得到3、2、1的次数: 所以我想得到

3 2
2 3
1 2

但是当我尝试计算子查询的结果时,出现以下错误:

select x,count(x) from (select count(post_id) from votes group by post_id) as x group by x;
ERROR:  column "x.count" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: select x,count(x) from (select count(post_id) from votes...

我也不能按数量分组,因为当我这样做时,我正在关注:

  x   | count                                                                                                                                                                                
------+-------                                                                                                                                                                               
 (1)  |     1                                                                                                                                                                                
 (2)  |     2                                                                                                                                                                                
 (3)  |     3 

1 个答案:

答案 0 :(得分:1)

您试图按df1=df.filter(like='1') df2=df.filter(like='2') df2.columns=df1.columns s=pd.concat([df1,df2]).sort_index().groupby('id1').rolling(2).sum() s=s.loc['a'] df.loc[s.index].assign(new=s) Out[99]: id1 id2 value1 value2 new 0 a b 10 5 NaN 1 c a 5 10 20.0 4 d a 10 20 30.0 5 a c 5 10 25.0 进行分组,这意味着您试图对整个子选择而不是<?php session_start(); require __DIR__ . '/../vendor/autoload.php'; use Knp\Snappy\Pdf; $pdf = new Pdf('pdf\wkhtmltopdf\bin\wkhtmltopdf'); header('Content-Type: application/pdf'); //just set margins $pdf->setOption('margin-top', 20); $pdf->setOption('margin-bottom', 15); $pdf->setOption('margin-left', '0'); $pdf->setOption('margin-right', '0'); $pdf->setOption('header-html', 'pdf/header.html'); $pdf->setOption('footer-html', 'pdf/footer.html'); $pdf->setOption('load-error-handling','ignore'); $file = file_get_contents('pdf/cover.php'); echo $pdf->getOutputFromHtml($file); ?> 值进行分组。那是问题。

如果仅按x值进行分组,则会得到预期的结果:

count

demo:db<>fiddle