你好,你在圖片中看到連接,我想用這個查詢SELECT COUNT MAX(值),其中
SELECT count(idmilestone)
FROM milestoneevent
WHERE max(idmilestone=1)
我想在我的情況來計算所有與最後一個里程碑= 1文件提取數據表它必須回到5,因爲兩個文件了具有里程碑意義現在2請幫我實現這個
你好,你在圖片中看到連接,我想用這個查詢SELECT COUNT MAX(值),其中
SELECT count(idmilestone)
FROM milestoneevent
WHERE max(idmilestone=1)
我想在我的情況來計算所有與最後一個里程碑= 1文件提取數據表它必須回到5,因爲兩個文件了具有里程碑意義現在2請幫我實現這個
嘗試這個
SELECT count(idmilestone)
FROM milestoneevent
WHERE idfile NOT IN(SELECT idfile
FROM milestoneevent
WHERE idfile > 1)
這是不正確的,這個查詢還會帶來idfile 1,最後idmilestone是2 – AleOtero93
不工作這個返回7它,ust返回5爲正確的查詢 –
你寫了問題「我想要計算所有的文件與最後一個里程碑= 1「 –
對於您提供的數據,里程碑數量在不斷增加。如果這是大致如此,你可以簡單地做:
select count(*)
from (select idfile, max(idmilestone) as max_idmilestone
from milestoneevent
group by idfile
) m
where max_idmilestone = 1;
或者,您可以使用dat
定義的最後一個:
select count(*)
from milestonemevent me
where me.dat = (select max(me2.dat)
from milestonemevent me2
where me.idfile = me2.idfile
) and
me.idmilestone = 1;
請試試這個,它會給idmilestone的計數其是至少一個,即1
SELECT count(idmilestone) FROM milestoneevent
WHERE idmilestone =(SELECT MIN(idmilestone) FROM milestoneevent)
,如果你想指望它等於1,那麼試試這個
SELECT count(idmilestone) FROM milestoneevent
WHERE idmilestone =1
您可以使用此一LEFT JOIN
:
SELECT t1.id, t1.idfile, t1.idmilestone
FROM milestoneevent AS t1
LEFT JOIN milestoneevent AS t2
ON t1.idfile = t2.idfile AND t1.dat < t2.dat
WHERE t1.idmilestone = 1 AND t2.id IS NULL
要計算使用COUNT
:
SELECT COUNT(*)
FROM milestoneevent AS t1
LEFT JOIN milestoneevent AS t2
ON t1.idfile = t2.idfile AND t1.dat < t2.dat
WHERE t1.idmilestone = 1 AND t2.id IS NULL
GROUP BY t1.idfile
試試這個:
SELECT COUNT(*)
FROM (
SELECT idmilestone
FROM milestoneevent
GROUP BY idmilestone
HAVING COUNT(*) = 1
)
WHERE idmilestone=1
你爲什麼使用max(idmilestone = 1) – Deep
有7個'idmilestone = 1',你爲什麼或者如何得到5? – chris85
這是因爲有2個'idfile'(1和2)替代'idmileston = 2'的'idmilestone = 1'。所以他們的最後一個'idmilestone'是2 – AleOtero93