zoukankan      html  css  js  c++  java
  • SQL Server ->> T-SQL查询面试题之实例版

    1 - 3 题:

    数据表结构:

    OrderID    ProductID  OrderDate      SaleAmount

    1        1       2015-01-01    100

    2        6       2015-02-01    900

    3        1       2015-11-01    100

    ....

    1. 找出2015年整年中销量最好(订单量最多)的3款产品。如果有多种方法实现更佳。

    结果:

    ProductID  SaleQuantity

    ....

    2. 找出2015年12个月中每个月销售总额最高的3个产品(如果存在相同的销售总额就一齐输出,例如第4名和第5名的销售总额恰好与第3名相同,同样输出)。如果有多种方法实现更佳。

    结果:

    SaleMonth  ProductID   SaleAmount

    2015-01       X      11111

    2015-02       Y      11111

    3. 对每个产品在每一年内的按季度进行一个连续的销售额累加。如果有多种方法实现更佳。

    4. 2015年全年销售总额最高的5款产品的每张订单在其订单时间过去一年内最高的销售额。如果有多种方法实现更佳。

    5. 拼接结果集

    ;WITH T1 AS (
    SELECT 'A' AS Col1
    UNION
    SELECT 'B' AS Col1
    ),

    T2 AS (
    SELECT 'C' AS Col1
    UNION
    SELECT 'D' AS Col1
    UNION
    SELECT 'E' AS Col1
    UNION
    SELECT 'F' AS Col1
    ),

    T3 AS (
    SELECT 'G' AS Col1
    )

    把这三个结果集拼接成:

     T1_Col1   T2_Col1   T3_Col1

     A       C      G     

     B       D      NULL

    NULL      E      NULL

    NULL      F      NULL

    6. 合并字符串

    表:tblOrder

    OrderID  CustomerID

    1      1

    2      1

    3      1

    4      2

    5      3

    6      2

    7      4

    8      4

    ....

    按CustomerID为单位,把每个Customer的OrderID用逗号(,)合并在一起成为一个字符串,结果如下:

    CustomerID  OrderIDs

    1        1,2,3

    2        4,6

    3        5

    4        7,8

    ....

    如果有多种方法实现更佳。

    7. 寻找缺失数据区间。如果有多种方法实现更佳。

    数据:

    InvNo  

    1

    2

    3

    6

    8

    9

    19

    结果:

    StartNo  EndNo

    4        5

    7        7

    10      18

    8. 构造数据 

    数据:

    Date      Value

    2015-01-01    1

    2015-01-03    2

    2015-01-05    3

    2015-01-07    4

    2015-01-08    5       

    构造上面数据的N个副本,每个数据副本的最小日期(字段Date)为上一个副本的最晚日期加1天,字段Value保持和上一个副本一样。假设N为3,最终数据如下:

    2015-01-01    1
    2015-01-03    2
    2015-01-05    3
    2015-01-07    4
    2015-01-08    5
    2015-01-09    1
    2015-01-11    2
    2015-01-13    3
    2015-01-15    4
    2015-01-16    5
    2015-01-17    1
    2015-01-19    2
    2015-01-21    3
    2015-01-23    4
    2015-01-24    5

      

    9. 编写T-SQL产生下列数据

    结果:

    1
    1
    2
    3
    5
    8
    13
    21
    34

    ....

    2584

    10. 水池注水法/水柱灌水法

    假设有5个圆柱体容器,每个圆柱体容器中有不同数量的球体,现在有N个球体可以填入这5个圆柱体容器中,需要按照灌水的方式先填充球体最少的圆柱体,再依次递增。比如:

    圆柱体1: O

    圆柱体2: OOOO

    圆柱体3: OOOOOOO

    圆柱体4: OOOOOOOOOO

    圆柱体5: OOOOOOOOOOOO

    O代表了圆柱体中的球体,现在手头上有12个新的球体,需要对圆柱体1->圆柱体2->圆柱体3(由少至多)分配球体,要均匀分配。

    用T-SQL计算出每个圆柱体里面大概可以分配到多少份额的球体。

  • 相关阅读:
    buildroot的make menuconfig配置
    mac上如何设置ssh不断掉,并且session保持
    深度学习中网络设计的几点经验
    深度学习中将类别标签映射到one_hot向量
    python 过滤掉字符串中的回车符与换行符( )
    对训练集中的数据做随机抽样,并对抽样出的数据可视化观察分布情况
    利用Python的collections包下Counter的类统计每个数据出现的个数
    模型使用的数据集如何保证验证集和测试集的分布保持一致
    生成随机数的几个总结
    模型训练过程中的训练集、训练开发集、开发集和测试集总结
  • 原文地址:https://www.cnblogs.com/jenrrychen/p/5348546.html
Copyright © 2011-2022 走看看