簡體   English   中英

從一張表中將多行選擇為一行

[英]Select multiple rows into one row from one table

我有一張表,其中包含跨多行的相關數據,我需要將其查詢為一行。

string_value | def_id | location | model | asset_num |  exp_date  |
-------------+--------+----------+-------+-----------+------------+
  null       |  16    |    A     | CR35  |     1     | 2015-02-01 |
  SWIT: C    |  25    |    A     | CR35  |     1     |    null    |
  null       |  16    |    B     | CR85  |     2     | 2015-07-28 |
  SWIT: D    |  25    |    B     | CR85  |     2     |    null    |

我希望最終得到的查詢可以給我結果:

string_value | location | model | asset_num |  exp_date  |
-------------+----------+-------+-----------+------------+
  SWIT: C    |    A     | CR35  |     1     | 2015-02-01 |
  SWIT: D    |    B     | CR85  |     2     | 2015-07-28 |

您可以在下面嘗試-使用匯總和分組依據

select location, model, asset_num,max(string_value),max(exp_date) 
from tablename
group by location, model, asset_num

將聚合函數MAX()GROUP BY返回預期結果:

SELECT MAX(string_value) AS string_value ,
       location,
       MAX(model) AS model,
       MAX(asset_num) AS asset_num,
       MAX(exp_date) AS exp_date  
FROM TableName
GROUP BY location

我猜三重位置,模型,asset_num定義了結果集中的行。 如果是這樣,請使用聚合:

select location, model, asset_num,
       max(string_value) as string_value,
       max(exp_date) as exp_date
from t
group by location, model, asset_num;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM