我有一个sqlite数据库包含一个具有此结构的表
CREATE TABLE stats (
day_date DATE NOT NULL,
listing_id INT (10) NOT NULL,
cat_id INT (4) DEFAULT (0),
source_id INT (4) DEFAULT (0),
views INT (8) NOT NULL
DEFAULT (0),
views_counter INT (8) NOT NULL
DEFAULT (0),
bot_views INT (8) NOT NULL
DEFAULT (0),
bot_views_counter INT (8) DEFAULT (0)
NOT NULL,
PRIMARY KEY (
day_date
)
);
这个数据库可能包含500,000行,所以我想制作一些索引来快速查询
我在这个数据库上使用的查询是
SELECT listing_id,SUM(views) AS total_views
FROM stats
WHERE day_date IN("11-10-2015","12-10-2015","13-10-2015","14-10-2015",
"15-10-2015","16-10-2015","17-10-2015")
group by listing_id
ORDER BY total_views DESC
我使用day_date上的范围来获得一天,一周的时间,
我有一些想法,如何制作一个名为'周'包含一年中的周数并在其上添加索引,所以如果我想要一天,我将只使用day_date
上的一个值,如果我想要一周,我将使用week
列...是正确?
答案 0 :(得分:1)
如果您使用correct date format,则无需枚举本周的所有日期,并且可以在日期列中使用简单索引:
WebBrowsers.Navigate(filePath)
答案 1 :(得分:1)
我从不使用DATE格式。我只使用TEXT,如2015年10月29日的“20151029223007”,22小时30分07秒。订购和比较简单快捷。
然后,你可以写:
SELECT listing_id,SUM(views) AS total_views
FROM stats
WHERE day_date > "20151010" and day_date < "20151018"
group by listing_id
ORDER BY total_views DESC