zoukankan      html  css  js  c++  java
  • 问的问题的答案~

    原文发布时间为:2008-10-19 —— 来源于本人的百度文章 [由搬家工具导入]

    有两张表
    Test表 Paper表
    User Paper User Paper Score
    1 1 1 1 80
    2 1 2 1 81
    2 1 82
    2 2 83
    3 1 84


    1、帮我写一条语句,把Paper中的 两个 (2 1 81), (2 1 82)只保留前一条记录,就是表中如果存在(User,Paper)相同的,只保留第一条记录;
    如上表删除后结果为:

    User Paper Score
    1 1 80
    2 1 81
    2 2 83
    3 1 84


    2、帮我写一条 Select 语句,结合 Test 与Paper,使Paper中的(User,Paper)与Test中的(User,Paper)相等,但是只能取第一条记录;如上表取的结果是

    User Paper Score
    1 1 80
    2 1 81
                                   

    select [User],[Paper],min([Score]) as [Score]
    from
    (
    select t.[User],t.[Paper],p.[Score]
    from [Test] t
    left join [Paper] p
    on t.[User]=P.[user] and t.[Paper]=p.[Paper]
    ) a
    group by [User],[Paper]

    1、group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面

    2、from 后面必须跟着表
    这句子查询里的查询结果相当于构建了一张新表 a就是这张新表的名字

  • 相关阅读:
    我太难了
    树状数组模板
    题解 洛谷P1196 【[NOI2002]银河英雄传说】
    poj 2352 & Ural 1028 数星星 题解
    棋盘覆盖 题解
    2015 JSOI冬令营训练 彩色格子 题解
    题解 UVA12716 GCD等于XOR GCD XOR
    第一篇博客
    2019.8.26 小结
    2019.8.24 小结 (关于树状数组,线段树小结)
  • 原文地址:https://www.cnblogs.com/handboy/p/7148440.html
Copyright © 2011-2022 走看看