计算实例并使用SQL在新列中显示

时间:2018-06-18 03:34:52

标签: sql sql-server

让此查询生效时遇到问题。除了计数列之外,我可以完全了解所有内容。我知道它很简单,但有一些东西,我只是没有到这里。请看下面的问题。

列出Employees表中的名字,中间名和姓氏,以及Orders表中的送货城市及其总数或计数。如果运输城市的数量大于或等于7,则仅显示运输城市。显示员工的第一个名称,后跟空格,后跟中间名称,后跟空格,后跟姓氏但不留下如果员工没有中间名,则为空格。按员工姓名订购结果集。查询应生成下面列出的结果集。

enter image description here

SELECT        CONCAT(Employees.FirstName,' ',Employees.MiddleName, ' ', Employees.LastName) AS Name,
              Orders.ShipCity
FROM          Employees INNER JOIN
              Orders ON Employees.EmployeeID = Orders.EmployeeID

谢谢!

2 个答案:

答案 0 :(得分:1)

这样做: -

SELECT        CONCAT(Employees.FirstName,' ',Employees.MiddleName, ' ', Employees.LastName) AS Name,
              Orders.ShipCity,
              COUNT(1) [Count]
FROM          Employees INNER JOIN
              Orders ON Employees.EmployeeID = Orders.EmployeeID
GROUP BY Employees.FirstName, Employees.MiddleName, Employees.LastName, Orders.ShipCity

答案 1 :(得分:0)

使用COUNT作为分析函数:

SELECT
    CONCAT(e.FirstName, ' ', e.MiddleName, ' ', e.LastName) AS Name,
    o.ShipCity,
    COUNT(*) OVER (PARTITION BY e.EmployeeID) [Count]
FROM Employees e
INNER JOIN Orders o
    ON e.EmployeeID = o.EmployeeID;