2016-03-16 50 views
0
tag | date | $ 
1 | 112014 | 1.42 
2 | 112014 | 2.53 
1 | 112015 | 1.42 

所需的輸出:SQL幫助 - 比較不同表中的值基於價值

col1 - tag 
col2 - earliest date 
col3 - later date 
col4 - $ 

現在我想讓它顯示是這樣的:

1 | 112014 | 112015 | 1.42 

想通過在查詢中要做到這一點MySQL的
請幫助!如果它可以檢查兩個表中的值 - 即檢查tbl2對tbl1的數據

回答

0

要實現此目的,您可以使用聚合函數,如MAX(),MIN(),AVG(),SUM(),if您需要爲每個標籤只獲得一行,using grouping

SELECT `col1` as `tag`, MIN(`col2`) as `earliest_date`, MAX(`col3`) as `latest_date`, AVG(`col4`) as `sum` 
FROM `tbl1` 
GROUP BY `col1` 

如果您需要選擇所有行,並sorted by columns你提供,那麼查詢可能是這樣的:

SELECT `col1` as `tag`, `col2`, `col3`, `col4` as `sum` 
FROM `tbl1` 
ORDER BY `col2` ASC, `col3` DESC 

您可以使用UNION,如果你只是想從兩個表導致。

如果你需要從兩個表中作爲一個表處理數據和運行他們聚集,然後應用概念聚集/彙總表,都認爲:

CREATE TABLE `merged_tbl` AS SELECT * FROM `tbl1` UNION SELECT * FROM `tbl2` 

然後執行相同的聚集查詢,但在新創建的合併表。