多组查询

时间:2015-12-11 20:01:12

标签: sql postgresql

我有以下表(id,l_id,f_id,status)。我想写一个应该导致

的查询
select count(*), f_id from table groupby f_id

即,我想得到每个特定l_id的f_id计数。如果我不得不在没有l_id的情况下找到f_id的计数,我本可以写一些东西

select count (*), f_id where l_id = <l_id> group by f_id但是如何进一步增强基于l_id分割计数呢?

以编程方式我想首先执行一个查询,该查询从表中使用l_id获取,然后对于每个l_id,我可以运行查询

$entries = array( 1420934400 => array( 'entry' => 'I think I liked it.', 'data' => 'some' ), 1452470400 => array( 'entry' => 'Turkey is much better. Tastes more like chicken.', 'data' => 'no calls' )); 然后我将不得不做多个查询。我想知道我是否可以在一个查询中实现这一目标

2 个答案:

答案 0 :(得分:2)

group by语法支持多个列,因此非常简单:

select count(*), l_id, f_id
  from table
 group by l_id, f_id

答案 1 :(得分:0)

基于此要求:

  

我想得到每个特定l_id的f_id计数。

您需要隔离l_id,然后对f_id执行计数:

SELECT a.l_id, count(f_id)
   FROM (SELECT l_id
        FROM table
        GROUP BY l_id) a
INNER JOIN table b ON (a.id = b.id)
GROUP BY a.l_id