billID
기본 키 가되는 테이블이 있습니다 .
Invoice (billID, item, value, quantity)
다음 쿼리 :
SELECT item, sum(quantity) AS TotalItems
FROM Invoice
WHERE value>1
GROUP BY item
HAVING sum(quantity)>10
, 및 만 사용하여 최적화 (또는 최적화 해제 ?) 하려면 다시 작성해야합니다 .SELECT
FROM
WHERE
GROUP BY
하고 HAVING
있습니까?GROUP BY
& HAVING
만 사용 SELECT
, FROM
그리고 WHERE
?내 접근 방식 :
[1] 이것을 달성하기 위해 UNION
다른 items
것을 사용 하고 있습니다. 그러나 가장 큰 문제는 내가 모든 것을 미리 알아야한다는 것 item
입니다.
SELECT item, sum(quantity) FROM Invoice WHERE item='lumia'
UNION
SELECT item, sum(quantity) FROM Invoice WHERE item='iphone'
UNION
SELECT item, sum(quantity) FROM Invoice WHERE item='samsung'
UNION
SELECT item, sum(quantity) FROM Invoice WHERE item='moto'
.
.
.
and so on
결과를 얻는 다른 방법이 있습니까?
하위 쿼리를 사용하고 각 항목의 수량을 합산 할 수 있습니다.
SELECT A.item, A.Total
FROM
( SELECT distinct item,
(SELECT SUM(quantity)
FROM Invoice I2
WHERE I2.item = I1.item) Total
FROM Invoice I1
) A
where Total >10
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다