(大众金融)SQL server面试题(2)-游戏打包销售折扣

今天,面试了一家公司,什么也不说先来三道面试题做做,第二题。

那么,我们就开始做题吧,谁叫我们是打工人呢。

题目是这样的:

销售平台进行游戏打包促销。将任意个游戏打包为一组,根据游戏数量制定折扣。
打包的游戏数量限定2个至4个。当包含2个游戏时折扣为9折,3个时8折,4个时6折。
问1:计算有多少种(个数)不同的打包组合方式。
问2:打包购买游戏时,分别计算出2个打包,3个打包和4个打包时价格最贵的包。要求最终用一个查询得出结果。

GNAMEAMT
A29.33
B19.22
C25.81
D16.79
E20.78
F25.32

---------------------------------------------------------------------------------------------------------------------------------

DROP TABLE IF EXISTS #T_GAME;				
CREATE TABLE #T_GAME (				
  ID INT IDENTITY(1,1),				
  GNAME VARCHAR(50),				
  AMT DECIMAL(10,2),				
  NOTE VARCHAR(255)				
);				
				
INSERT INTO #T_GAME(GNAME, AMT, NOTE) VALUES ('A', 29.33, NULL);				
INSERT INTO #T_GAME(GNAME, AMT, NOTE) VALUES ('B', 19.22, NULL);				
INSERT INTO #T_GAME(GNAME, AMT, NOTE) VALUES ('C', 25.81, NULL);				
INSERT INTO #T_GAME(GNAME, AMT, NOTE) VALUES ('D', 16.79, NULL);				
INSERT INTO #T_GAME(GNAME, AMT, NOTE) VALUES ('E', 20.78, NULL);				
INSERT INTO #T_GAME(GNAME, AMT, NOTE) VALUES ('F', 25.32, NULL);  				
				
				
SELECT T.GROUP_TYPE ,COUNT(1) AS"个数"				
FROM				
(				
SELECT '2' AS GROUP_TYPE, CONCAT(A.GNAME , B.GNAME) AS GNAME_GROUP , A.AMT + B.AMT AS AMT				
FROM #T_GAME A, #T_GAME B				
WHERE A.GNAME < B.GNAME				
UNION				
SELECT '3' AS GROUP_TYPE, CONCAT(A.GNAME, B.GNAME, C.GNAME) AS GNAME_GROUP, A.AMT + B.AMT + C.AMT AS AMT				
FROM #T_GAME A, #T_GAME B, #T_GAME C				
WHERE A.GNAME < B.GNAME				
AND B.GNAME < C.GNAME				
UNION				
SELECT '4' AS GROUP_TYPE, CONCAT(A.GNAME, B.GNAME, C.GNAME, D.GNAME) AS GNAME_GROUP, A.AMT + B.AMT + C.AMT + D.AMT AS AMT				
FROM #T_GAME A, #T_GAME B, #T_GAME C, #T_GAME D				
WHERE A.GNAME < B.GNAME				
AND B.GNAME < C.GNAME				
AND C.GNAME < D.GNAME				
) T				
GROUP BY GROUP_TYPE;				
				
SELECT TOP 1 GROUP_TYPE, GNAME_GROUP, AMT				
FROM				
(				
SELECT '2' AS GROUP_TYPE, CONCAT(A.GNAME , B.GNAME) AS GNAME_GROUP , (A.AMT + B.AMT) * 0.9 AS AMT				
FROM #T_GAME A, #T_GAME B				
WHERE A.GNAME < B.GNAME				
UNION				
SELECT '3' AS GROUP_TYPE, CONCAT(A.GNAME, B.GNAME, C.GNAME) AS GNAME_GROUP, (A.AMT + B.AMT + C.AMT) * 0.8 AS AMT				
FROM #T_GAME A, #T_GAME B, #T_GAME C				
WHERE A.GNAME < B.GNAME				
AND B.GNAME < C.GNAME				
UNION				
SELECT '4' AS GROUP_TYPE, CONCAT(A.GNAME, B.GNAME, C.GNAME, D.GNAME) AS GNAME_GROUP, (A.AMT + B.AMT + C.AMT + D.AMT) * 0.6 AS AMT				
FROM #T_GAME A, #T_GAME B, #T_GAME C, #T_GAME D				
WHERE A.GNAME < B.GNAME				
AND B.GNAME < C.GNAME				
AND C.GNAME < D.GNAME				
) T ORDER BY AMT DESC;				

查询结果如下:

结语:很老的一道面试题目,之前也有人在知乎做过,知乎上提供了第一问的答案,没有第二问的答案,并且是用Oracle格式写的查询SQL,我这里使用SQL server格式重新整理。

仁者见仁智者见智。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/350463.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ之死信交换机

前言 消息队列是分布式系统中常用的组件&#xff0c;用于异步通信、解耦和提高系统可靠性。然而&#xff0c;在实际应用中&#xff0c;难免会遇到一些异常情况&#xff0c;例如消息处理失败、超时等。为了更好地处理这些异常情况&#xff0c;死信交换机&#xff08;Dead Lette…

C++:组合、继承与多态

面向对象设计的重要目的之一就是代码重用&#xff0c;这也是C的重要特性之一。代码重用鼓励人们使用已有的&#xff0c;得到认可并经过测试的高质量代码。多态允许以常规方式书写代码来访问多种现有的且已专门化了的相关类。继承和多态是面向对象程序设计方法的两个最主要的特性…

使用vs2022将c语言文件打包成exe可执行程序分享给朋友(详解)

目录 1.给vs2022安装打包插件 2.新建打包项目 找到自己想要打包好的项目 3.拷贝必要的资源 3.1拷贝素材 3.2***导入输出文件***** 4.设置项目在桌面显示的图标 4.1找好图标素材&#xff0c;利用在线工具生成图标格式 4.2将图标放到桌面显示中来 5.最终生成打包 1.给vs…

鸿蒙ArkUI开发-实现增删Tab页签

场景介绍 部分应用在使用过程中需要自定义添加或删除标签的场景&#xff0c;比如在浏览器中的顶部标签栏中需要新打开或关闭网页页签&#xff0c;而这种场景与Tabs组件效果类似&#xff0c;但Tabs组件不提供增加或删除页签的功能&#xff0c;不能自由的增加删除页签&#xff0…

C语言实现希尔排序算法(附带源代码)

希尔排序 希尔排序&#xff0c;也称递减增量排序算法&#xff0c;是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的&#xff1a; 插入排序在对几乎已经排好序的数据操作时&#xff0c;效率高&#xff0…

如何轻松实现一键转发微信好友的朋友圈文案?

随着朋友圈日渐流行&#xff0c;我们越来越希望能够快速方便地与朋友们分享我们的想法和感受。然而&#xff0c;每次都需要保存图片、复制粘贴文案&#xff0c;这无疑增加了我们的工作量和时间成本。 现在&#xff0c;我将和大家分享一款神奇的工具——微信管理系统&#xff0…

【C++中STL】map/multimap容器

map/multimap容器 map基本概念map构造和赋值map的大小和交换map插入和删除map的查找和统计 map排序 map基本概念 map中的所有元素都是pair对组&#xff0c;高效率&#xff0c;pair中的第一个元素为key&#xff08;键值&#xff09;&#xff0c;起到索引作用&#xff0c;第二个…

硬件基础:存储器

之前对存储器做过简单的汇总&#xff0c;参考这篇文章&#xff1a; 计算机/微机存储技术_路溪非溪的博客-CSDN博客 这次&#xff0c;我们从数字集成电路的角度再次补充学习一下存储器的知识。 定义和分类 从这里面我们能知道一些关键词。 存储介质主要是半导体器件和磁性材料。…

C语言指针进阶之一字符指针

目录 1.指针知识回顾 2.字符指针 2.1字符指针的一般使用 2.2字符指针的另外一种使用 1.指针知识回顾 ①.指针就是个变量&#xff0c;用来存放地址&#xff0c;地址唯一标识了一片空间。 内存会划分成一个个的内存单元&#xff0c;每个内存单元都有一个独立的编号&#xff0…

Vue深入学习3—数据响应式原理

1、数据响应式原理 1.1、MVVM是什么&#xff1f; 简单来说&#xff0c;就是数据变了&#xff0c;视图也会跟着变&#xff0c;首先你得定义一个带有{{ }}的模板Model&#xff0c;当数据中的值变化了&#xff0c;视图View就会跟着变化&#xff1b;视图模型View-model是模板Model和…

C++ 类的初始化列表

C 中的类必须使用初始化列表的 4 种情况&#xff1a; 一&#xff0c;继承于一个基类&#xff0c;这个基类的构造函数有参数时。 #include <stdio.h> #include <stdlib.h>#pragma pack(4) class CBase { public:CBase(int value): bBaseValue(value){}~CBase(){}p…

代码随想录算法训练营31期day4,力扣24+19+02.07+142

24&#xff0c;动指针 class Solution { public:ListNode* swapPairs(ListNode* head) {//建立虚拟头结点auto dummynew ListNode(-1);dummy->nexthead;for(auto pdummy;p->next&&p->next->next;){auto ap->next;auto ba->next;p->nextb;a->n…

详解SpringCloud之远程方法调用神器Fegin

第1章:引言 咱们作为Java程序员,在微服务领域里,Spring Cloud可谓是个耳熟能详的大名。它提供了一套完整的微服务解决方案,其中就包括了服务间的通信。在这个微服务中,有一个成员特别引人注意,它就是Feign。 那Feign到底是什么呢?简单来说,Feign是一个声明式的Web服务…

linux条件判断练习

1.实现自动生成相应的压缩包 1.写一个脚本&#xff0c;完成如下功能 传递一个参数给脚本&#xff0c;此参数为gzip、bzip2或者xz三者之一&#xff1b; (1) 如果参数1的值为gzip&#xff0c;则使用tar和gzip归档压缩/etc目录至/backups目录中&#xff0c;并命名为/backups/etc-…

1块9毛钱,修复拓牛TC1D智能垃圾桶盖子不能正常开合的故障

前言 21年9月份买了拓牛的智能垃圾桶&#xff0c;一直用的很流畅&#xff0c;再加上屋里没啥有机垃圾&#xff0c;也没有宠物&#xff0c;用上之后每次投入垃圾&#xff0c;之后都会盖上盖子&#xff0c;没有很多的异味散发&#xff0c;屋里也没有蟑螂等害虫。 再加上门口有帘…

Android开发学习-Activity

启停活动页面 1、启动和停止 startActivity(new Intent(原页面.this,目标页面.this)); startActivity(new Intent(this,ActFinishActivity.class)) 从当前页面回到上一个页面&#xff0c;相当于关闭当前页面&#xff0c;返回代码如下&#xff1a; finish(); 2、生命周期 …

鸿蒙:@Link装饰器-父子双向同步

子组件中被Link装饰的变量与其父组件中对应的数据源建立双向数据绑定。从API version 9开始&#xff0c;该装饰器支持在ArkTS卡片中使用。 需要注意&#xff1a;Link装饰的变量与其父组件中的数据源共享相同的值。Link装饰器不能在Entry装饰的自定义组件中使用。 一、装饰器使…

基于Python对二手车之家的数据采集与分析

1.1 用户需求 1.1.1 背景与现状 基于Python的二手车之家数据采集与分析的背景与现状分析 背景&#xff1a; 随着经济的发展和人们生活水平的提高&#xff0c;二手车市场逐渐兴起。二手车之家作为中国最大的二手车交易平台之一&#xff0c;提供了丰富的二手车信息&#xff0…

下载nacos 2.3 for arm64

客户组织安全测试&#xff0c;我们系统测出了好几个高危问题&#xff0c;其中大部分是关于nacos的。 原先的nacos版本太低了&#xff0c;是1.3的。现在&#xff08;2024.01&#xff09;已经是2.3了&#xff0c;应该装个新的。我们使用docker安装nacos&#xff0c;原本很简单的…
最新文章