我正在使用SQLite并使用像这样的循环执行许多COUNT查询...
foreach (var eventId in eventIds)
{
Database.Query("SELECT COUNT(RowId) FROM Images WHERE EventId = " + eventId);
}
...每个查询仅花费12毫秒左右的时间,但这加起来会导致10秒钟的等待。是否可以将其合并为一个查询和一组事件ID?
就像...
SELECT COUNT(RowId) FROM Images WHERE EventId IN (10329, 10312, 10328, etc...)
...但是很明显有个人COUNT回来了吗?
答案 0 :(得分:4)
使用GROUP BY
获取相对于事件的计数。
SELECT eventid,
count(*)
FROM images
WHERE eventid IN (4711,
747,
...)
GROUP BY eventid;
这将返回类似:
eventid | count
========+======
4711 | 31
747 | 99
...
答案 1 :(得分:3)
尝试一下:这将为您提供每个事件的计数
SELECT EventId ,COUNT(RowId) FROM Images WHERE EventId IN (10329, 10312, 10328, etc...)
group by EventId