programing

열 중 하나에 특정 값이 포함된 경우에만 MySQL SUM

sourcejob 2023. 7. 23. 14:13
반응형

열 중 하나에 특정 값이 포함된 경우에만 MySQL SUM

열 중 하나에 특정 값이 있을 때만 행을 합하는 방법이 있습니까?다음 테이블이 있습니다.

| order_id | total | is_tip |
-----------------------------
|     1    |  12   |    1   |
|     1    |   3   |    0   |
|     2    |  28   |    0   |
|     2    |  15   |    0   |
|     3    |  39   |    1   |
|     3    |   8   |    1   |

원하는 결과는 다음과 같습니다.

| order_id | SUM(total) |
-------------------------
|     1    |     15     |
|     3    |     47     |

is_tip 열 중 하나가 1인 경우에만 요약됩니다.따라서 주문 ID 1과 3이 적합합니다.지금까지 이 쿼리를 사용하려고 했습니다.

SELECT order_id, SUM(total) FROM orders HAVING COUNT(is_tip) >= 1;

하지만 이 질문은 너무 틀렸습니다.저는 초보자입니다.잘 부탁드립니다.

사용having절:

SELECT order_id, SUM(total)
FROM orders
GROUP BY order_id
HAVING SUM(is_tip) >= 1;

또한 당신의 쿼리가 필요합니다.GROUP BY그리고 적어도 하나의 "팁"이 있는 행을 원한다고 생각합니다.구문을 지정할 수도 있습니다.HAVING절은 다음과 같습니다.

HAVING MAX(is_tip) > 0

아래 쿼리를 사용하십시오.

SELECT order_id, SUM(total) FROM orders where is_tip >= 1 group by order_id;

Having집계 기준으로 필터링할 위치에서만 사용할 수 있습니다.

언급URL : https://stackoverflow.com/questions/62718487/mysql-sum-only-if-one-of-the-columns-contain-a-certain-value

반응형