나는이 projects
아래와 같은 표를. 약간 다른 두 개의 id 열이 idx
있으며 idy
– 하나 idx
는 idy
버전 관리를 위해 여러 개의를 가질 수 있습니다 .
idx, idy, name, use_count, usage_date
-----, -------, ------------, ----------, ----------
x1, x11, x1 name 1, 10, 1
x1, x13, x1 name 3, 10, 3
x1, x12, x1 name 2, 10, 2
x2, x21, x2 name 1, 10, 2
x3, x31, x3 name 1, 10, 2
목표는 모든 idx
에 대해 결과가 다음 과 같도록 사용을 통합하는 것입니다.
use_count
이다 COL SUM(use_count)
동일한 대해idx
usage_date
또한 usage_date는 특정 범위 내에 있어야하지만 이는 사소한 일입니다.
idx, idy, name, use_count, usage_date
-----, -------, ------------, ----------, ----------
x1, x13, x1 name 3, 30, 3
x2, x21, x2 name 1, 10, 2
x3, x31, x3 name 1, 10, 2
지금까지
SELECT
idx, idy, name,
sum(use_count) as use_count,
usage_date
FROM
projects
WHERE
usage_date <= 3
GROUP BY
idx
..하지만 프로젝트의 최신 이름 (id 포함 x1
) 을 파생하는 방법을 파악하는 데 문제가 있습니다.
아래 방법으로 시도해 볼 수 있습니다-
select X.idx,idy,name,X.use_count,usage_date from
(
select idx,sum(use_count) as use_count
from t
group by idx
)X inner join
(
select * from t a where usage_date = (select max(usage_date) from t b where a.idx=b.idx)
)Y on X.idx=Y.idx
산출:
idx idy name use_count usage_date
x1 x13 x1 name 3 30 3
x2 x21 x2 name 1 10 2
x3 x31 x3 name 1 10 2
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다