在SQLite数据库中,提供了和SQL Server一样的排序和分组的ORDER BY和GROUP BY语句,以及DISTINCT的使用,本文介绍了这一部分使用的代码实例,接下来我们就一一介绍。
公司主营业务:成都网站制作、成都网站建设、外贸营销网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出两当免费做网站回馈大家。
排序ORDER BY 列 ASC (DESC)
指定某个列进行排序,ASC 为升序,DESC 为降序。下面的语句查询汽车品牌和价格,并以价格排序。代码如下:
- sqlite>
- sqlite> SELECT Name, Cost FROM Cars ORDER BY Cost DESC;
- Name Cost
- ---- ---------------
- Bent 350000
- Merc 57127
- Audi 52642
- Humm 41400
- Volv 29000
- Volk 21600
- Citr 21000
- Skod 9000
- sqlite>
区分DISTINCT 列
有一些字段的值可能会出现重复,比如订单表中,一个客户可能会有好几份订单,因此客户的名字会重复出现。
到底有哪些客户下了订单呢?下面的语句将客户名字区分出来。代码如下:
- sqlite>
- sqlite> Select * FROM Orders;
- Id OrderPrice Customer
- ---- --------------- ---------------
- 1 1200 Williamson
- 2 200 Robertson
- 3 40 Robertson
- 4 1640 Smith
- 5 100 Robertson
- 6 50 Williamson
- 7 150 Smith
- 8 250 Smith
- 9 840 Brown
- 10 440 Black
- 11 20 Brown
- sqlite>
- sqlite> SELECT DISTINCT Customer FROM ORDERS;
- Customer
- ---------------
- Black
- Brown
- Robertson
- Smith
- Williamson
- sqlite>
分组GROUP BY 列
分组和前面的区分有一点类似。区分仅仅是为了去掉重复项,而分组是为了对各类不同项进行统计计算。
比如上面的例子,我们区分出 5 个客户,这 5 个客户一共下了 11 个订单,说明很多客户都下了不止一个订单。
下面的语句统计每个客户在订单上总共花费了多少钱。代码如下:
- sqlite>
- sqlite> SELECT sum(OrderPrice) AS Total, Customer FROM Orders GROUP BY Customer;
- Total Customer
- --------------- ---------------
- 440 Black
- 860 Brown
- 340 Robertson
- 2040 Smith
- 1250 Williamson
- sqlite>
这里Sum 是SQLite 内置的统计函数,在这个例子中用来求每个顾客的订单价格的和。
统计结果也可以设定返回条件,但是不能用 WHERE 子句,而是用HAVING 子句,如下例,返回订单总额大于 1000 的顾客。代码如下:
- sqlite>
- sqlite> SELECT sum(OrderPrice) AS Total, Customer FROM Orders
- ...> GROUP BY Customer HAVING sum(OrderPrice)>1000;
- Total Customer
- --------------- ---------------
- 2040 Smith
- 1250 Williamson
- sqlite>
关于SQLite数据库的ORDER BY和GROUP BY语句的知识就介绍到这里,希望能给各位带来收获。
【编辑推荐】
文章名称:一个SQLite数据库的ORDER BY和GROUP BY代码实例
网页地址:http://www.shufengxianlan.com/qtweb/news48/46298.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联