10-4 6-4 查询厂商“D“生产的PC和便携式电脑的平均价格 (10 分)思路+详解+测试用例
生活随笔
收集整理的這篇文章主要介紹了
10-4 6-4 查询厂商“D“生产的PC和便携式电脑的平均价格 (10 分)思路+详解+测试用例
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前言:測(cè)試用表
貼心杰將這個(gè)測(cè)試表分享給大家 ,如果大家做題的時(shí)候發(fā)現(xiàn)那個(gè)點(diǎn)過(guò)不去,一定不要直接看別人的博客,先自己測(cè)試用例,如果思路也對(duì) ,驗(yàn)證數(shù)據(jù)也對(duì),還有錯(cuò)誤 你再看看別人的思路!!!
CREATE TABLE product ( maker CHAR(20) , -- 制造商model CHAR(20) NOT NULL, -- 產(chǎn)品型號(hào)TYPE CHAR(20), -- 產(chǎn)品類型PRIMARY KEY(model) ); CREATE TABLE pc ( model CHAR(20) NOT NULL, -- 型號(hào)speed DECIMAL(6,2), -- 速度ram INT, -- 內(nèi)存hd DECIMAL(6,2), -- 硬盤容量cd CHAR(4), -- 光驅(qū)price INT, -- 價(jià)錢PRIMARY KEY(model),FOREIGN KEY(model) REFERENCES product(model) ); CREATE TABLE laptop ( model CHAR(20) NOT NULL, -- 型號(hào)speed DECIMAL(6,2), -- 速度 ram INT, -- 內(nèi)存hd DECIMAL(6,2), -- 硬盤容量screen DECIMAL(6,2), -- 屏幕大小price INT, -- 價(jià)錢PRIMARY KEY(model),FOREIGN KEY(model) REFERENCES product(model) );INSERT INTO productVALUES('D','2001','便攜式電腦'),('D','2002','便攜式電腦'),('D','3001','打印機(jī)'),('D','1008','個(gè)人電腦'),('D','1009','個(gè)人電腦');INSERT INTO productVALUES('A',1001,'個(gè)人電腦'),('A',1002,'個(gè)人電腦');INSERT INTO pcVALUES('1008',180.00,32,2.00,'8X',3699),('1009',200.00,32,2.50,'8X',2599);INSERT INTO pcVALUES('1001' ,133.00, 16, 1.60, '6X', 1595),('1002', 120.00, 16 ,1.60, '6X', 1399);INSERT INTO laptopVALUES('2001',100.00,20,1.10,9.50,1999),(2002,117.00,12,0.75,11.30,2499);一:10-4 6-4 查詢廠商"D"生產(chǎn)的PC和便攜式電腦的平均價(jià)格 (10 分)
-- 查詢廠商D生產(chǎn)的PC和便攜式電腦的平均價(jià)格-- 分析:1.查詢出D和PC一個(gè)表 字段為price -- 2.查詢D和laptop一個(gè)表 字段為price -- 3.union all 兩個(gè)表 然后求出平均值和 注意 union all 是不去重的 union 是去重的 -- 4.還有就是這道題最后求取的結(jié)果是要四舍五入的 要用 round(平均值) 別問(wèn)我怎么知道的,我是試出來(lái)的 先用的floor 不對(duì) -- 然后改成 round 就對(duì)了 -- -- 1. -- select price -- from product,pc -- where product.model = pc.model;-- -- 2. -- select price -- from product,laptop -- where product.model = laptop.model;-- 3. SELECT round(AVG(price)) AS avg_priceFROM (SELECT priceFROM product,pcWHERE product.model = pc.modelAND maker = 'D'UNION ALLSELECT priceFROM product,laptopWHERE product.model = laptop.model AND maker = 'D') temp;二:10-3 6-3 查詢廠商"A"生產(chǎn)的PC的平均價(jià)格 (10 分)
-- 查詢廠商A生產(chǎn)的PC的平均價(jià)格。-- 分析:1.查詢出A生產(chǎn)的PC -- 2.求其平均價(jià)格select avg(price) as avg_pricefrom product,pcwhere product.model = pc.modeland maker = 'A';三:10-6 6-6 查詢各廠商生產(chǎn)的便攜式電腦的顯示器平均尺寸 (10 分)
-- 查詢各廠商生產(chǎn)的便攜式電腦的顯示器平均尺寸。 -- 分析:1.先求出各個(gè)廠商對(duì)應(yīng)的電腦屏幕 -- 2.將其作為子表進(jìn)行分組查詢 平均尺寸;-- 錯(cuò)誤示例:聚合函數(shù)不能和字段一塊用 當(dāng) 不是group by 的時(shí)候 -- select maker,avg(screen) as avg_screen -- from product,laptop -- where product.model = laptop.model;-- -- 1. -- select maker,screen -- from product,laptop -- where product.model = laptop.model;-- 2. select maker,avg(screen) as avg_screenfrom (select maker,screenfrom product,laptopwhere product.model = laptop.model) tempgroup by maker;四:10-7 6-7 查詢生產(chǎn)三種不同型號(hào)的PC的廠商 (10 分)
-- 查詢生產(chǎn)三種不同型號(hào)的PC的廠商。 -- 分析:1.先將pc表和product表聯(lián)合起來(lái) 字段為廠商 和 型號(hào) 這樣求出 每個(gè)廠商對(duì)應(yīng)的pc型號(hào) 表1 -- 2.對(duì)表1進(jìn)行分組查詢 字段為 廠商 和 型號(hào)個(gè)數(shù) 并篩選出數(shù)量為3的廠商 表2 -- 3.對(duì)表2進(jìn)行查詢 -- -- 1. -- select maker,pc.model -- from pc,product -- where pc.model = product.model-- -- 2 -- select maker,count(maker) as nums -- from (select maker,pc.model -- from pc,product -- where pc.model = product.model) temp -- group by maker having nums = 3; -- -- 3select makerfrom (select maker,count(maker) as numsfrom (select maker,pc.modelfrom pc,productwhere pc.model = product.model) tempgroup by maker having nums = 3) temp1五:10-10 6-10 查詢所有生產(chǎn)打印機(jī)的廠商生產(chǎn)的PC的硬盤平均容量 (10 分)
-- 查詢所有生產(chǎn)打印機(jī)的廠商生產(chǎn)的PC的硬盤平均容量。-- 分析: -- 1.查詢出既生產(chǎn) 打印機(jī) 又生產(chǎn) PC 的廠商 -- 1>.查詢出生產(chǎn)打印機(jī)的廠商 表1 -- 2>.查詢product表 字段為 廠商,model,條件為 maker 來(lái)自 表1 and type = 個(gè)人電腦 表2 -- 2.聯(lián)合表2和PC表求出 平均硬盤容量-- 1.1 -- select maker -- from product,printer -- where product.model = printer.model-- -- 1.2 -- select maker,product.model -- from product -- where maker in (select maker -- from product,printer -- where product.model = printer.model) -- and type = "個(gè)人電腦"-- 2 select avg(hd) as avg_hdfrom pc,(select maker,product.modelfrom productwhere maker in (select makerfrom product,printerwhere product.model = printer.model)and type = "個(gè)人電腦") tempwhere pc.model = temp.model;其他 有疑問(wèn)的題可以留言 , 上方分享一下我認(rèn)為很好的題!!!!!!!!!
寫sql語(yǔ)句 一定要有自己的分析,然后一步步寫寫,最重要的你的邏輯表達(dá)出來(lái),這幾道破題,不是最重要的
好了 有疑問(wèn)的題可以留言 或擇你認(rèn)為有難度的題也可以分享給我 ,我非常樂意做題,加油陌生人
總結(jié)
以上是生活随笔為你收集整理的10-4 6-4 查询厂商“D“生产的PC和便携式电脑的平均价格 (10 分)思路+详解+测试用例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 毛峰茶叶的功效与作用、禁忌和食用方法
- 下一篇: 临界表储存图的数据(思路+详解+图示)