반응형

MSSQL에서 합산(SUM) 또는 평균(AVG) 결과를 5로 나누고 결과를 소수점 한 자리까지 표현하는 방법을 알아보겠습니다. 이를 위해 CAST 또는 ROUND 함수를 사용하여 결과를 적절히 포맷할 수 있습니다.

1. SUM 후 5로 나누기
예를 들어, Sales 테이블에서 모든 제품의 Quantity 합을 구한 후 그 결과를 5로 나누고 소수점 한 자리까지 반올림하는 쿼리는 다음과 같습니다.

sql


SELECT 
    CAST(SUM(Quantity) / 5.0 AS DECIMAL(10, 1)) AS SumDividedBy5
FROM 
    Sales;
이 쿼리에서 SUM(Quantity) / 5.0는 Quantity의 합을 5로 나누고, CAST(... AS DECIMAL(10, 1))는 결과를 소수점 한 자리까지 포맷합니다. 5.0을 사용하는 것은 결과가 실수로 처리되도록 하기 위함입니다.

2. AVG 결과 소수점 한 자리까지
Sales 테이블에서 모든 제품의 Quantity 평균을 계산하고 소수점 한 자리까지 표시하는 쿼리는 다음과 같습니다.

sql


SELECT 
    CAST(AVG(Quantity) AS DECIMAL(10, 1)) AS AverageQuantity
FROM 
    Sales;
또는 ROUND 함수를 사용하여 같은 결과를 얻을 수 있습니다.

sql


SELECT 
    ROUND(AVG(Quantity), 1) AS AverageQuantity
FROM 
    Sales;
ROUND 함수는 첫 번째 인자로 받은 값을 두 번째 인자로 지정한 소수점 자리까지 반올림합니다.

위의 방법을 사용하여 SQL 쿼리 결과의 수치를 원하는 소수점 자리까지 조절할 수 있습니다. 이를 통해 보다 정확하고 의도한 형태의 데이터 분석 결과를 얻을 수 있습니다.

반응형
반응형

PIVOT SUM FOR IN PIVOT_TABLE

 

PIVOT을 이용하여 세로를 가로로 변환 방법(행 열 변환) 

SELECT Student  
, isnull(CAST([Mathematics] AS varchar), '' ) [Mathematics]
, isnull(CAST([Science] AS varchar), '' ) [Science]
, isnull(CAST([Geography] AS varchar), '' ) [Geography]
-- , * 
FROM (
  SELECT
    [Student],
    [Subject],
    [Marks]
  FROM #TEMP_TABLE_Grades
) StudentResults
PIVOT (
  SUM([Marks])
  FOR [Subject]
  IN (
    [Mathematics],
    [Science],
    [Geography]
  )
) AS PivotTable;

IF OBJECT_ID('tempdb..#TEMP_TABLE_Grades') --임시 테이블 남아있을시 삭제 
  IS NOT NULL DROP TABLE #TEMP_TABLE_Grades;
 

CREATE TABLE #TEMP_TABLE_Grades(
  [Student] VARCHAR(50),
  [Subject] VARCHAR(50),
  [Marks]   INT
);
 
INSERT INTO #TEMP_TABLE_Grades VALUES 
('Jacob','Mathematics',100),
('Jacob','Science',95),
('Jacob','Geography',90),
('Jacob2','Mathematics',''),
('Jacob2','Science',''),
('Amilee','Mathematics',90),
('Amilee','Science',90),
('Amilee','Geography',100);
 
SELECT * FROM (
  SELECT
    [Student],
    [Subject],
    [Marks]
  FROM #TEMP_TABLE_Grades
) StudentResults
PIVOT (
  SUM([Marks])
  FOR [Subject]
  IN (
    [Mathematics],
    [Science],
    [Geography]
  )
) AS PivotTable
반응형

+ Recent posts