【问题标题】:How to make this 2 step query solution better如何使这个 2 步查询解决方案更好
【发布时间】:2019-11-25 14:26:24
【问题描述】:

在 MS Access 中进行查询:

我现在展示我的问题的简化示例。

我有一张桌子成员

Name/age/nickname

- Tom/12/wolf
- Chris/11/ranger
- Phil/14/H-man
- Chris/16/walker
- Chris/18/Mo

目标:一个名字出现了多少次,但只计算昵称中包含“a”的次数。

我需要 2 个查询; 第一步:

SELECT Members.Name, Members.Age, Members.Nickname
FROM Members
WHERE (((Members.Nickname) Like "*A*"));

第二步:

SELECT Step1.Name, Count(Step1.Age) AS AantalVanAge
FROM Step1
GROUP BY Step1.Name;

结果

- Chris 2
- Phil 1

【问题讨论】:

    标签: sql ms-access ms-access-2010


    【解决方案1】:

    您可以在单个查询中使用:

    select t.name, count(*) as AantalVanAge
    from members t
    where t.nickname like "*A*"
    group by t.name
    

    【讨论】:

    • 是的。 @Marvy 可能把问题简单化了。
    • 好的..我需要在访问中按字段将位置放在分组中。这对我来说是新的:-)
    【解决方案2】:

    在第二步中将您的第一个查询用作子查询:

    SELECT t.Name, Count(t.Age) AS AantalVanAge
    FROM (
      SELECT Name, Age
      FROM Members
      WHERE Nickname Like "*A*"
    ) AS t
    GROUP BY t.Name;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 2016-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多