Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 按一个字段分组,保留其他字段_Sql_Ms Access_Group By_Aggregate - Fatal编程技术网

Sql 按一个字段分组,保留其他字段

Sql 按一个字段分组,保留其他字段,sql,ms-access,group-by,aggregate,Sql,Ms Access,Group By,Aggregate,包含三个字段的基本表bod: | BOFORM_ID | FEINBOD | MAECHTBOD | +-----------+---------+-----------+ | 3301211 | fSms | 50 | | 3301211 | mSfs | 150 | | 3301231 | fSms | 200 | | 3301312 | Ss | 150 | | 3301312 | Su2

包含三个字段的基本表
bod

| BOFORM_ID | FEINBOD | MAECHTBOD | 
+-----------+---------+-----------+
|   3301211 | fSms    |        50 |
|   3301211 | mSfs    |       150 |
|   3301231 | fSms    |       200 |
|   3301312 | Ss      |       150 |
|   3301312 | Su2     |        50 |
我想

  • 分组依据
    BOFORM\u ID

  • MAECHTBOD

  • 同时将关联的
    FEINBOD
    MAECHTBOD
    的最大值保持在同一行

  • 我不知道如何实施步骤3

    我的期望输出:

    | BOFORM_ID | FEINBOD | MAECHTBOD | 
    +-----------+---------+-----------+
    |   3301211 | mSfs    |       150 |
    |   3301231 | fSms    |       200 |
    |   3301312 | Ss      |       150 |
    
    您可以使用相关子查询:

    SELECT b.*
    FROM bod as b
    WHERE MAECHTBOD = (SELECT MAX(b1.MAECHTBOD) FROM bod as b1 WHERE b1.BOFORM_ID = b.BOFORM_ID);
    

    考虑将单元级数据连接到聚合查询。这种方法比关联子查询更有效,关联子查询计算每行外部查询的聚合,而不是一次,如下所示

    SELECT t.BOFORM_ID, t.FEINBOD, t.MAECHTBOD 
    FROM myTable t
    INNER JOIN (
       SELECT sub_t.BOFORM_ID, MAX(sub_t.MAECHTBOD) AS MAX_BOD
       FROM myTable sub_t
       GROUP BY sub_t.BOFORM_ID
    ) AS agg
    ON t.BOFORM_ID = agg.BOFORM_ID AND t.MAECHTBOD = agg.MAX_BOD
    

    查找窗口功能(特别是分区)@约菲利普斯。。。MS Access是另一种Microsoft产品,它使用JET/ACE SQL方言而不是T-SQL。ACE不支持窗口功能。@Parfait确实支持。我一定是看错标签了