잘 설명해 드리겠습니다. 나는 선 주문 테이블이 (각 행의 순서는 항목과 가격의 양으로 구성되어, 거기에 다른 분야는하지만 나는 그를 떠났다.)주문 통계를 주문순으로 그룹화합니다.
테이블 'ORDERITEMS는'
orderid | quantity | price
1 | 1 | 1.5000
1 | 2 | 3.22
2 | 1 | 9.99
3 | 4 | 0.44
3 | 2 | 15.99
것은 그래서 얻을 수 주문 전체 실행
그러나 $ 1 미만의 모든 주문에 대해 계산하고 싶습니다.
내 최종 결과는 $ 1, $ 1 - $ 3, 3-5, 5-10, 10-15, ... 등의 범위를 정의 할 수 있습니다. ;
내 데이터
때문에 (희망)과 같이합니다 : 나는 우리의 전자 상거래 사이트에서 고객 주문의 pieChart에 고장을 제시 할 수tunder1 | t1to3 | t3to5 | t5to10 | etc
10 | 500 | 123 | 5633 |
그래야. 이제이 작업을 수행하기 위해 개별 SQL 쿼리를 실행할 수 있지만 가장 효율적인 '단일 SQL 쿼리'가 무엇인지 알고 싶습니다. MS SQL Server를 사용하고 있습니다.
현재 나는 총 $ 1 항에 따라 얻을 수 있도록 같은 단일 쿼리를 실행할 수 있습니다
SELECT COUNT(total) AS tunder1
FROM (SELECT SUM(Quantity * price) AS total
FROM OrderItems
GROUP BY OrderID) AS a
WHERE (total < 1)
어떻게이 최적화 할 수 있습니까? 미리 감사드립니다!
파생 테이블의 이름을 지정해야합니다. 그렇지 않으면 오류가 발생하고');'을') dt'로 바꿉니다. 또한, 이것은 또한 경고 : 경고 : Null 값은 집계 또는 다른 SET 연산에 의해 제거됩니다.'ELSE 0으로 답할 때처럼 SUM()을 사용하면이 문제가 해결됩니다. –
흠, 나는 오라클을 훨씬 좋아한다 ;-). –