现在有张表products是产品表,vend_id是供应商id,prod_price是供应价格,现在需要统计每个供应商供应了多少商品,供应商品的平均价格,sql如下:
SELECT vend_id, AVG( prod_price ), COUNT( * ) AS num_prods FROM products GROUP BY vend_id
输出结果如下:
vend_id AVG(prod_price) num_prods 1001 10.323333 3 1002 6.205000 2 1003 13.212857 7 1005 45.000000 2
然后我们还想统计平均值总和、汇总商品数,sql如下:
SELECT vend_id, AVG( prod_price ), COUNT( * ) AS num_prods FROM products GROUP BY vend_id WITH ROLLUP
多增加一个WITH ROLLUP即可实现汇总字段,结果如下:
vend_id AVG( prod_price ) num_prods 1001 10.323333 3 1002 6.205000 2 1003 13.212857 7 1005 45.000000 2 16.133571 14
1.定长和变长的分离 如int,char,time所占字节是固定的字段放在一张表 如varchar,text所占字节不确定的字段放在一张表中2.常用字段和不常用字段进行分离,根据查询频率来设计3.一对多的关联表可以添加冗余字段,如商品分类表 和商品表 ,在首页中需要显示每个分类商...
下面的是商品数据表,id是主键,catename是分类,titile是标题,price是价格,现在要求计算每种分类下的商品平均价格.id catename &n...
where与having非常类似.都能筛选数据.表达式完全一致. 但是职责的确不同.where负责对表中的字段进行筛选,having负责对where筛选后的结果集再次筛选。这也就是where不能使用别名字段来筛选的原因,因为数据中没有这个字段。&n...
1.MyISAM 建立一个MyISAM引擎的表时,就会在本地磁盘上建立三个文件,.frm格式文件,存储表定义;.MYD格式文件,存储数据;MYI格式文件,存储索引;方便数据迁移,我只需将mysql安装目录下data文件中的表文件复制即可完成数据迁移,之前在搬迁多个dedecms中深有体会。 ...
1.floor(x)返回小于x的整数,向下取整,用法,商品的价格是浮点型的,需要向下取整 eg:select id,title,floor(price) from shopgoods2.rand()返回0-1之间的随机数 select rand() select rand()...
1.查看歌曲表结构(主要是给name字段添加全文索引)(mysql5.7才支持全中文索引)desc music; +---------+-------------+------+-----+---------+----------------+ | Fie...