当前位置: 首页 > 面试题库 >

SQL最新命令?微软SQL

赵夕
2023-03-14
问题内容

我只是写一个查询来查看我的客户客户数据库,并列出他们已经下了多少个订单等。

我正在努力添加到该查询中的是仅向我显示该电子邮件的最新OrderID

有任何想法吗?

这是我的查询

select top 1000 
     BuyerEMail
     ,COUNT(*) HowMany
     ,Name
from Orders 
where 
     Pay != 'PayPal'
group by 
     BuyerEmail
     ,Name
order by 
     HowMany Desc

问题答案:

快去吧

SELECT TOP 1000 
o.BuyerEMail
,COUNT(*) HowMany
,o.Name
,o2.OrderID
FROM Orders o
JOIN 
    (
     SELECT 
     BuyerEmail
     ,MAX(OrderDate) Latest 
     FROM Orders 
     GROUP BY BuyerEmail
    ) l
ON o.BuyerEmail = l.BuyerEmail

JOIN Orders o2
ON l.BuyerEmail = o2.BuyerEmail
AND l.OrderDate = o2.OrderDate

WHERE Pay != 'PayPal'

GROUP BY 
    o.BuyerEmail
    ,o.Name
    ,l.Latest
ORDER BY 
    COUNT(*) DESC

它通过子查询中的每个电子邮件地址计算出最新的顺序,然后您可以在SELECT中使用它。我还对表进行了别名处理,以使事情变得更容易。

您也可以通过嵌套子查询来另一种方式。

SELECT TOP 1000 
o.BuyerEMail
,COUNT(*) HowMany
,o.Name
,o2.OrderID
FROM Orders o
JOIN 
    (
     SELECT
     BuyerEmail
     ,OrderID
     FROM
     Orders ord
     JOIN
        (
            SELECT 
            BuyerEmail
            ,MAX(OrderDate) Latest 
            FROM Orders 
            GROUP BY BuyerEmail
        ) ma
     ON ord.BuyerEmail = ma.BuyerEmail
     AND ord.OrderDate = ma.OrderDate
    ) l
ON o.BuyerEmail = l.BuyerEmail

WHERE Pay != 'PayPal'

GROUP BY 
    o.BuyerEmail
    ,o.Name
    ,l.Latest
ORDER BY 
    COUNT(*) DESC


 类似资料:
  • 主要内容:1. 数据定义语言(DDL),2.数据操作语言,3. 数据控制语言,4. 事务控制语言,5. 数据查询语言SQL命令是指令,它用于与数据库通信交互。 它还用于执行特定任务,功能和数据查询。 SQL可以执行各种任务,如创建表,向表中添加数据,删除表,修改表,为用户设置权限等。 SQL命令的类型,如下图所示 : 1. 数据定义语言(DDL) DDL更改表的结构,如创建表,删除表,更改表等。 DDL的所有命令都是自动提交的,这意味着它会永久保存数据库中的所有更改。 以下是DDL下的一些命令:

  • 问题内容: 我在SQL中使用简单的DELETE语句遇到意外结果时遇到了麻烦,似乎将单词添加到列表中了。一定是愚蠢的东西!但我看不到,尝试了几种不同的方式。所有相同的结果非常令人困惑。 问题答案: 尝试删除单引号。另外,为什么还要将SQL字符串与连接对象()连接起来???? 尝试这样: 还要注意,由于连接被包装在using块中,因此您无需在语句中将其关闭。Dispose方法将自动调用.Close方法

  • 也可以直接执行一个SQL命令,即执行Insert, Update, Delete 等操作。此时不管数据库是何种类型,都可以使用 ` 和 ? 符号。 sql = "update `userinfo` set username=? where id=?" res, err := engine.Exec(sql, "xiaolun", 1)

  • 也可以直接执行一个SQL命令,即执行Insert, Update, Delete 等操作。此时不管数据库是何种类型,都可以使用 ` 和 ? 符号。 sql = "update `userinfo` set username=? where id=?" res, err := engine.Exec(sql, "xiaolun", 1)

  • 我无法在sqlworkbench中使用delete命令,每次尝试使用delete命令时都会出现错误,您可以在随问题附上的图像中看到。 我正在附上错误的截图。错误以绿色突出显示,最后一个:

  • 主要内容:一、Sql流程,二、源码分析,四、总结一、Sql流程 MySql是数据库,这次就分析一下一条SQL语句的流程,流程可能不会全面展开分析,当后面遇到具体的模块时,再由各个模块深入学习。如果使用过MySql的客户端(任意一种都可以),基本的形式就是在客户端写一条SQL语句,然后点击运行,正常的情况下,就会返回这条SQL执行后的结果。 可能学习Sql源码的人不少,但学习编译器知识的人就少多了。在SQL语句的执行过程中,其实SQL语句就是一门