select *, count(*) c
FROM mytable
GROUP BY col3, col4
HAVING c > 1
order by col4, col3;
我期待得到其中的任何值,選擇之中,有行至少兩個當量(COL3,COL4) 。 但是,我得到的結果只有一行發生一些col3值。有人可以解釋爲什麼嗎?
換句話說,我試圖建立一個查詢,獲取所有行對齊(col3,col4)不止一次。
的意想不到的結果的例子是這樣的:
id - col1 - col2 - col3 - col4 - c
123- val1 val123 43 val444 2
456- val14 val52 45 val444 2
43列COL3從未發生的結果,但我期望的那樣。否則這行不應該在結果中。
正確,
select * from ukberu1m where col3=43 and col4=val444;
給出了兩個結果在原來的表,但在結果表中只有一行由如意的標準,而不是兩個由於某種原因顯示。
該查詢應該做你想要的。你可以發佈一些取得錯誤結果的樣本數據嗎? – Barmar
您可能選擇比group by子句中列出的更多非聚合列;爲獲取所有列,請使用子查詢 –