Sqlite:在第二个表中获取Count和Max of children

时间:2014-06-07 10:13:29

标签: android sql sqlite

我在Android设备上的Sqlite中有两个表,其中表'images'上的外键是sector_id。现在我需要查询:

  1. 列出具有sector._id
  2. 的表格图像中所有行的相应计数的所有扇区
  3. 列出所有扇区ID最高的扇区,其中sector_id与sector._id相同
  4. 对于第一个查询,结果应如下所示:

    • _id:1,name:sector1,count(images):3
    • _id:2,name:sector2,count(images):2

    对于第二个查询:

    • _id:1,name:sector1,max(images):3
    • _id:2,name:sector2,max(images):5

    希望你能帮我解决SQL select语句:(

    enter image description here

1 个答案:

答案 0 :(得分:3)

使用GROUP BY的简单JOIN可以立即获得两个结果;

SELECT s._id, s.name, COUNT(i._id) count, MAX(i._id) max
FROM sector s
LEFT JOIN images i ON s._id = i.sector_id
GROUP BY s._id, s.name

An SQLfiddle to test with

LEFT JOIN使用相应的图像连接所有扇区,COUNT/MAX分别计算每个扇区的计数和最大ID(这是我们分组的)。