2010-09-28 61 views
1

的结果我正在使用PostgreSQL。
我有数据表所示:总结表

Parent_id  Count  Read 
---------  ------ ------ 
52405   2   False 
52405   1   True 

现在我想总结的数据等:

Parent_id  Count  Read 
---------  ------ ------ 
52405   3   False 

Count将记录的总和
Read将是逻辑操作。

回答

3
SELECT 
    "Parent_id", 
    SUM("Count"), 
    bool_and("Read") 
FROM 
    tablename 
GROUP BY 
    "Parent_id"; 

我没有使用,因为非法列名的双引号“,并在名称中使用大写的。

+0

这DBMS'es支持呢?从来没有听说过它,谷歌不 – zerkms 2010-09-28 06:35:21

+1

PostgreSQL:http://www.postgresql.org/docs/current/interactive/functions-aggregate.html现在我看到这个话题也被标记为其他dbms的...... – 2010-09-28 06:38:58

0
SELECT Parent_id, 
     s, 
     CASE WHEN logical_sum = cnt 
      THEN 'True' 
      ELSE 'False' 
     END 
    FROM (SELECT SUM("Count") as s, 
       SUM(CASE WHEN "Read" = 'True' 
         THEN 1 
         ELSE 0 
        END) AS logical_sum, 
       COUNT(*) AS cnt 
      FROM tbl 
     GROUP BY Parent_id) x