두 개의 값을 나누는 새 열을 추가하고 이라는 결과를 기존 SQL query
에 반환하고 싶습니다.값이있는 새 열 = col a/col b
누군가이 작업 방법을 알려 줄 수 있습니까?
두 개의 값을 나누는 새 열을 추가하고 이라는 결과를 기존 SQL query
에 반환하고 싶습니다.값이있는 새 열 = col a/col b
누군가이 작업 방법을 알려 줄 수 있습니까?
SQL은 산술 연산을 지원합니다
SELECT a, b, 100.0 * a/b AS percentage
FROM my_table
WHERE (some condition)
편집 : 코멘트에 언급 한 바와 같이 b
가 0 인 경우
, 우리는 b
에 의해 a
을 나눌 수 없습니다. 이 엣지 케이스는 명시 적으로 처리되어야합니다. 다음 예제에서 나는이 사건에 대한 null
을 반환하지만 실제 문제의 맥락에서 의미가 다른 처리 할 것 :
SELECT a, b, CASE WHEN b = 0 THEN NULL ELSE 100.0 * a/b END AS percentage
FROM my_table
WHERE (some condition)
아니라 수백만 건의 레코드를 즉시 계산하는 것보다.
테이블 정의에서이 작업을 수행하려는 경우 지속 된 계산 된 열을 사용합니다. 아래 예제는 demonimator의 null 문제를 처리하고 정수 수학 문제도 처리합니다.
alter table mytable
add [Result] AS (ColA*1.00/NULLIF(ColB,0)) Persisted
계산 된 열은 데이터베이스에서 가장 많이 사용되지 않는 기능 중 하나입니다. 그들에 대해 알고있는 것이 지불됩니다. 계산을 위해보다 복잡한 시나리오를 트리거로 처리해야 할 수도 있습니다.
어떤 데이터베이스를 사용하고 있습니까? 질문에 적절하게 태그를 답니다. –
열로 추가해야하는 이유는 무엇입니까? ''a, b, (a/b)를 Foo의 비율로 선택하는 것 '과 같이 계산하는 것이 더 의미가 있습니다. –
@DavidLively, select 문에서이 계산을 반복적으로 수행하면 여러 번 지속되는 것보다 훨씬 나쁜 생각입니다 계산과 함께 데이터베이스의 열. – HLGEM