高级SQLite3 SELECT查询

时间:2014-07-26 07:26:00

标签: sqlite

我有一个SQLite表,很像下面示例中的一个表,其中包含一个由逗号分隔的项列表。我想知道的是,如果可能的话,可以使用SQLite3中内置的功能;构建一个SELECT查询,允许我:

A. )返回表格中所有行的特定颜色显示的总次数。

B。)对结果进行排序,使它们首先按照它们在结果集中出现的频率列出,然后按字母顺序列出出现次数相同的任何项目。

我意识到这可能听起来令人困惑,所以我将在下面详细解释abit,但首先这是我正在使用的示例表。

表名:demo_table

ID | Colors
---|-------------------------------------------
1  | red, green, blue, pink, yellow
2  | blue, purple, white, red
3  | green, black, orange, brown
4  | silver, white, blue
5  | brown, green, blue, black, red, purple, orange

结果设置:

红色(3),绿色(3),蓝色(4),粉红色(1),黄色(1),紫色(2),白色(2),黑色(2),橙色(2),棕色( 2),银(1)

结果我想在运行查询后获得:蓝色,绿色,红色,黑色

说明:

如果结果本身不明显,我想要做的是返回结果集中的前4个项目,这些项目首先按照它们在结果集中出现的频率排序,然后从Blue开始被列出4次它会先来。 Green是下一个,因为它被列出了3次,Red接下来是因为它被列出了3次,但由于Red在字母表中出现在Green之后,它出现在Green的reult之后,最后是最后的结果是Black,因为即使其他项目在reult-set中显示的次数相同,它也会在字母表中首先列出,因此它成为列表中的最后一项,因为我们只是查找为了第4个结果。

我想要创建的所有这些是表格列中项目的“前5名”列表。最后,我想让最终用户选择如何显示列表,但我首先想要了解基础知识,所以我知道是否甚至可以单独使用SQLite3来创建这样的系统。

最后,如果有可能,这样的查询会是什么样子?

0 个答案:

没有答案