感谢您阅读我的博客,如果您现在工作、学习累了或者疲惫了,不妨聆听一下音乐,它能够减轻你的疲劳,还能够带给您一种舒适愉悦的心情。如果您认为这篇文章还不错或者有所收获,您可以在页面 右侧和底部 扫描二维码 打赏我,您的鼓励是我继续写作、分享的最大动力!

SQL-几个面试题

/*
    人员:LDH
    功能:SQL-几个面试题
    日期:2018-7-20
 */

USE TestDB;
GO

DECLARE @t TABLE
(
    BuyPerson NVARCHAR(20) NOT NULL,
    ProductName NVARCHAR(20) NOT NULL,
    Amount INT NOT NULL
        DEFAULT 0
);

INSERT INTO @t
(   BuyPerson,
    ProductName,
    Amount
)
VALUES
( N'A', N'', 2),
( N'B', N'', 4),
( N'C', N'', 1),
( N'A', N'', 2),
( N'B', N'', 6);

SELECT BuyPerson,
    ProductName,
    Amount
FROM @t;

-- 查询出所有购入商品为两种或两种以上的购物记录
SELECT BuyPerson,
    COUNT(ProductName) AS '商品种类数'
FROM @t
GROUP BY BuyPerson
HAVING COUNT(ProductName) > = 2;

WITH info(BuyPerson, ProductName, CategoryCount)
AS (SELECT BuyPerson,
        ProductName,
        COUNT(ProductName) OVER (PARTITION BY BuyPerson) AS CategoryCount
    FROM @t
   )
SELECT info.BuyPerson,
    info.ProductName,
    info.CategoryCount
FROM info
WHERE info.CategoryCount > = 2;

DECLARE @Product TABLE
(
    Name NVARCHAR(20) NOT NULL,
    ProductAddress NVARCHAR(10) NOT NULL,
    ProductPrice FLOAT NOT NULL
        DEFAULT 0
);
INSERT INTO @Product
(   Name,
    ProductAddress,
    ProductPrice
)
VALUES
( N'苹果', N'山东', 2.5),
( N'苹果', N'云南', 1.9),
( N'苹果', N'四川', 3),
( N'西瓜', N'江西', 1.5),
( N'西瓜', N'北京', 2.4);

SELECT Name,
    ProductAddress,
    ProductPrice
FROM @Product;

-- 查询平均价格在2元以下的商品名称
SELECT Name,
    AVG(ProductPrice) AS '平均价格'
FROM @Product
GROUP BY Name
HAVING AVG(ProductPrice) < 2;

WITH it(Name, AvgPrice)
AS (SELECT Name,
        AvgPrice = AVG(ProductPrice) OVER (PARTITION BY Name)
    FROM @Product
   )
SELECT it.Name,
    it.AvgPrice
FROM it
WHERE it.AvgPrice < 2
GROUP BY it.Name,
    it.AvgPrice;

WITH t(Name, AvgPrice)
AS (SELECT Name,
        AvgPrice = AVG(ProductPrice) OVER (PARTITION BY Name)
    FROM @Product
   )
SELECT DISTINCT t.Name,
    t.AvgPrice
FROM t
WHERE t.AvgPrice < 2;

 

posted @ 2018-07-20 09:32  Love In Winter  阅读(191)  评论(0编辑  收藏  举报
作者: LifeDecidesHappiness
出处: http://www.cnblogs.com/LifeDecidesHappiness/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,否则保留追究法律责任的权利,且在文章页面明显位置给出原文连接,如有问题,可以通过以下邮箱地址 2468881301@qq.com  联系我,非常感谢。
踏实做一个为人民服务的搬运工!
如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能,您的支持和鼓励是我继续写作、分享的最大动力!

点击关注不迷路,让我带你上高速!