Heim Datenbank MySQL-Tutorial 怎么在SQLServer计算列和平均值

怎么在SQLServer计算列和平均值

Jun 07, 2016 pm 04:21 PM
sqlserver 平均值 怎么 计算

严格来说,Having并不需要一个子表,但没有子表的Having并没有实际意义。如果你只需要一个表,那么你可以用Where子句达到一切目的。为进行实践,Having预先假定至少两个表和一个基于第二个表的合计函数。 下面是一个简单的例子:你想要订单总数超过25000美元

  严格来说,Having并不需要一个子表,但没有子表的Having并没有实际意义。如果你只需要一个表,那么你可以用Where子句达到一切目的。为进行实践,Having预先假定至少两个表和一个基于第二个表的合计函数。

  下面是一个简单的例子:你想要订单总数超过25000美元的客户清单。你需要适当连接的三个表:Customer、SalesOrderHeader和SalesOrderDetail。然后,你求Detail的和,并将总数与25000美元进行比较。查看列表A。

  查看列表A中的代码时,有一件事情并不明显,即LineTotal列被计算。你可以像求实际的列的和一样求出已计算列的和。但是,你不能在同一个操作中执行两个不同层次的合计函数。

  SELECT

  Sales.Customer.CustomerID,

  Sales.SalesOrderHeader.SalesOrderID,

  SUM(Sales.SalesOrderDetail.LineTotal)

  AS SubTotalFROM

  Sales.Customer

  INNER JOIN Sales.SalesOrderHeader

  ON Sales.SalesOrderHeader.Customer

  ID = Sales.Customer.CustomerID

  INNER JOIN Sales.SalesOrderDetail

  ON Sales.SalesOrderDetail.SalesOrder

  ID = Sales.SalesOrderHeader.SalesOrderIDGROUP BY

  Sales.Customer.CustomerID,

  Sales.SalesOrderHeader.SalesOrder

  IDHAVING SUM(LineTotal) > 25000.00ORDER BY

  Sales.Customer.CustomerID,

  SalesOrderID ;列表A:

  假设你希望知道所有客户的平均销售额。你可以使用列表B中的代码,它返回如下错误信息:

  SELECT

  Sales.SalesOrderHeader.SalesOrderID,

  AVG(SUM(Sales.SalesOrderDetail.LineTotal))

  AS AverageFROM

  Sales.SalesOrderHeader

  INNER JOIN Sales.SalesOrderDetail

  ON Sales.SalesOrderDetail.SalesOrder

  ID = Sales.SalesOrderHeader.SalesOrder

  IDGROUP BY

  Sales.SalesOrderHeader.SalesOrderID列表B:

  Msg 130, Level 15, State 1, Line 1

  Cannot perform an aggregate function on an expression

  containing an aggregate or a subquery.错误信息:

  你可以将平均值的计算过程进行分解来解决这个问题。你可以将第一部分(SUM)编写成一个表值UDF,如列表C所示。你可以根据列表D中的函数计算平均值。列表E说明你如何能够进行组合。

  USE [AdventureWorks]

  GO

  /****** Object: UserDefinedFunction

  [dbo].[SalesTotals_fnt]

  Script Date: 12/09/2006 11:32:54 ******/

  SET ANSI_NULLS ON

  GO

  SET QUOTED_IDENTIFIER ON

  GO

  CREATE FUNCTION [dbo].[SalesTotals_fnt]()

  RETURNS TABLE

  AS RETURN

  (SELECT SalesOrderID,

  SUM(LineTotal)AS TotalSale

  FROM Sales.SalesOrderDetail

  GROUP BY Sales.SalesOrderDetail.SalesOrderID)列表C:

  CREATE FUNCTION [dbo].[AverageSale_fns] (

  -- Add the parameters for the function here

  -- )RETURNS money

  ASBEGIN

  -- Declare the return variable here

  DECLARE @Result money

  -- Add the T-SQL statements to compute the return value here

  SET @Result =(SELECTAvg(TotalSale)AS AverageSale

  FROM dbo.SalesTotals_fnt())

  -- Return the result of the function

  RETURN @Result

  END列表D:

  DECLARE @Avg moneySELECT @Avg = dbo.AverageSale_fns()

  SELECT *, @Avg as Average,

  TotalSale / @Avg as Ratio, CASE

  WHEN TotalSale / @Avg > 1 THEN 'Above Average'

  WHEN TotalSale / @Avg

  ELSE 'Average' END

  FROM dbo.SalesTotals_fnt()列表E:

  现在你知道了如何根据一个子表使用Having子句来测试合计值。当你需要在一个查询中使用两个不同的合计函数时,,最好是把它们分解成单独的函数,然后再进行组合(如前一个例子所说明的)。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So importieren Sie eine MDF-Datei in SQL Server So importieren Sie eine MDF-Datei in SQL Server Apr 08, 2024 am 11:41 AM

Die Importschritte sind wie folgt: Kopieren Sie die MDF-Datei in das Datenverzeichnis von SQL Server (normalerweise C:\Programme\Microsoft SQL Server\MSSQL\DATA). Öffnen Sie in SQL Server Management Studio (SSMS) die Datenbank und wählen Sie Anhängen aus. Klicken Sie auf die Schaltfläche „Hinzufügen“ und wählen Sie die MDF-Datei aus. Bestätigen Sie den Datenbanknamen und klicken Sie auf die Schaltfläche OK.

So lösen Sie das Problem, dass das genannte Objekt bereits in der SQLServer-Datenbank vorhanden ist So lösen Sie das Problem, dass das genannte Objekt bereits in der SQLServer-Datenbank vorhanden ist Apr 05, 2024 pm 09:42 PM

Für Objekte mit demselben Namen, die bereits in der SQL Server-Datenbank vorhanden sind, müssen folgende Schritte ausgeführt werden: Bestätigen Sie den Objekttyp (Tabelle, Ansicht, gespeicherte Prozedur). Mit IF NOT EXISTS kann die Erstellung übersprungen werden, wenn das Objekt leer ist. Wenn das Objekt Daten enthält, verwenden Sie einen anderen Namen oder ändern Sie die Struktur. Verwenden Sie DROP, um vorhandene Objekte zu löschen (Vorsicht, Sicherung empfohlen). Suchen Sie nach Schemaänderungen, um sicherzustellen, dass keine Verweise auf gelöschte oder umbenannte Objekte vorhanden sind.

CUDAs universelle Matrixmultiplikation: vom Einstieg bis zur Kompetenz! CUDAs universelle Matrixmultiplikation: vom Einstieg bis zur Kompetenz! Mar 25, 2024 pm 12:30 PM

Die allgemeine Matrixmultiplikation (GEMM) ist ein wesentlicher Bestandteil vieler Anwendungen und Algorithmen und außerdem einer der wichtigen Indikatoren zur Bewertung der Leistung der Computerhardware. Eingehende Forschung und Optimierung der Implementierung von GEMM können uns helfen, Hochleistungsrechnen und die Beziehung zwischen Software- und Hardwaresystemen besser zu verstehen. In der Informatik kann eine effektive Optimierung von GEMM die Rechengeschwindigkeit erhöhen und Ressourcen einsparen, was für die Verbesserung der Gesamtleistung eines Computersystems von entscheidender Bedeutung ist. Ein tiefgreifendes Verständnis des Funktionsprinzips und der Optimierungsmethode von GEMM wird uns helfen, das Potenzial moderner Computerhardware besser zu nutzen und effizientere Lösungen für verschiedene komplexe Computeraufgaben bereitzustellen. Durch Optimierung der Leistung von GEMM

Was tun, wenn der SQLServer-Dienst nicht gestartet werden kann? Was tun, wenn der SQLServer-Dienst nicht gestartet werden kann? Apr 05, 2024 pm 10:00 PM

Wenn der SQL Server-Dienst nicht gestartet werden kann, können Sie die folgenden Schritte beheben: Überprüfen Sie das Fehlerprotokoll, um die Grundursache zu ermitteln. Stellen Sie sicher, dass das Dienstkonto über die Berechtigung zum Starten des Dienstes verfügt. Überprüfen Sie, ob Abhängigkeitsdienste ausgeführt werden. Deaktivieren Sie die Antivirensoftware. Reparieren Sie die SQL Server-Installation. Wenn die Reparatur nicht funktioniert, installieren Sie SQL Server neu.

So überprüfen Sie die SQLServer-Portnummer So überprüfen Sie die SQLServer-Portnummer Apr 05, 2024 pm 09:57 PM

So zeigen Sie die SQL Server-Portnummer an: Öffnen Sie SSMS und stellen Sie eine Verbindung zum Server her. Suchen Sie den Servernamen im Objekt-Explorer, klicken Sie mit der rechten Maustaste darauf und wählen Sie Eigenschaften. Sehen Sie sich auf der Registerkarte „Verbindung“ das Feld „TCP-Port“ an.

Wo ist die SQLServer-Datenbank? Wo ist die SQLServer-Datenbank? Apr 05, 2024 pm 08:21 PM

SQL Server-Datenbankdateien werden normalerweise am folgenden Standardspeicherort gespeichert: Windows: C:\Programme\Microsoft SQL Server\MSSQL\DATALinux: /var/opt/mssql/data Der Speicherort der Datenbankdatei kann durch Ändern des Datenbankdateipfads angepasst werden Einstellung.

So stellen Sie eine versehentlich gelöschte Datenbank in SQL Server wieder her So stellen Sie eine versehentlich gelöschte Datenbank in SQL Server wieder her Apr 05, 2024 pm 10:39 PM

Wenn Sie eine SQL Server-Datenbank versehentlich löschen, können Sie die Datenbankaktivität stoppen; Party-Tools. Bitte sichern Sie Ihre Datenbank regelmäßig und aktivieren Sie die Transaktionsprotokollierung, um Datenverlust zu verhindern.

Wie lösche ich SQL Server, wenn die Installation fehlschlägt? Wie lösche ich SQL Server, wenn die Installation fehlschlägt? Apr 05, 2024 pm 11:27 PM

Wenn die SQL Server-Installation fehlschlägt, können Sie sie mit den folgenden Schritten bereinigen: Deinstallieren Sie SQL Server. Löschen Sie Registrierungsschlüssel. Löschen Sie Dateien und Ordner. Starten Sie den Computer neu

See all articles