今天,面试了一家公司,什么也不说先来三道面试题做做,第一题。
那么,我们就开始做题吧,谁叫我们是打工人呢。
题目是这样的:
统计除豪车外,销售最差的车
车辆按批销售,每次销售若干辆同型号的车,表中就记录增加一条记录。
问:查询总销售量大于100,且总销售量最少的3个型号的车及其总销售量。
MODEL | CNT |
A | 20 |
B | 50 |
B | 100 |
C | 900 |
C | 500 |
D | 400 |
E | 200 |
F | 40 |
G | 30 |
---------------------------------------------------------------------------------------------------------------------------------
DROP TABLE IF EXISTS #T_CAR;
CREATE TABLE #T_CAR (
ID INT IDENTITY(1,1),
CAR_TYPE VARCHAR(4),
CAR_CNT INT,
NOTE VARCHAR(255)
);
INSERT INTO #T_CAR(CAR_TYPE, CAR_CNT, NOTE) VALUES ('A', 20 , NULL);
INSERT INTO #T_CAR(CAR_TYPE, CAR_CNT, NOTE) VALUES ('B', 50 , NULL);
INSERT INTO #T_CAR(CAR_TYPE, CAR_CNT, NOTE) VALUES ('B', 100, NULL);
INSERT INTO #T_CAR(CAR_TYPE, CAR_CNT, NOTE) VALUES ('C', 900, NULL);
INSERT INTO #T_CAR(CAR_TYPE, CAR_CNT, NOTE) VALUES ('C', 500, NULL);
INSERT INTO #T_CAR(CAR_TYPE, CAR_CNT, NOTE) VALUES ('D', 400, NULL);
INSERT INTO #T_CAR(CAR_TYPE, CAR_CNT, NOTE) VALUES ('E', 200, NULL);
INSERT INTO #T_CAR(CAR_TYPE, CAR_CNT, NOTE) VALUES ('F', 40 , NULL);
INSERT INTO #T_CAR(CAR_TYPE, CAR_CNT, NOTE) VALUES ('G', 300, NULL);
SELECT TOP 3 CAR_TYPE, SUM(CAR_CNT) AS CAR_SUM
FROM #T_CAR
GROUP BY CAR_TYPE HAVING SUM(CAR_CNT) > 100
ORDER BY SUM(CAR_CNT) ;
查询结果如下:
结语:很老的一道面试题目,之前也有人在CSDN做过,但是我与他理解不同。
仁者见仁智者见智。