【问题标题】:Select and count uniqe value where gender = X选择并计算性别X的唯一值
【发布时间】:2015-09-22 13:24:39
【问题描述】:

我有一个 sql 查询:

SELECT t1.Nev, 
       Count(t2.Datum) AS Edzes_szam 
FROM   Adatok t1 
       INNER JOIN (SELECT DISTINCT Kod, 
                                   Datum 
                   FROM   Jelenlet 
                   WHERE  Datum LIKE '" + dtm_year_hkszpp_ym + "%') t2 
               ON t1.Azon_sima = t2.Kod 
GROUP  BY t1.Nev 

我想请您帮忙更改它,因为只需要计算 gender='X'

此查询计算名称在选定月份中的登录次数。 我想为性别做一个过滤器。我必须如何以及在哪里接受这个where gender = 'X'

我正在使用 MSOLEDB。

【问题讨论】:

  • 看你是哪个表的gender栏
  • 您是否尝试将 WHERE 子句放在 GROUP BY 子句之前?
  • 提问时,对查询中的所有列使用限定的列名(即包括表别名)。我们不知道这些列的来源。

标签: sql join count oledb distinct


【解决方案1】:

您的工作不需要子查询:

SELECT A.Nev, Count(DISTINCT J.Datum) AS Edzes_szam 
FROM Adatok a INNER JOIN
     Jelenlet j
     ON A.Azon_sima = j.Kod AND
        j.Datum LIKE '" + dtm_year_hkszpp_ym + "%'
GROUP BY a.Nev ;

使用这种结构,您只需在GROUP BY 之前添加WHERE gender = <whatever>

您的代码有点暗示您正在使用LIKE 作为日期。在任何数据库中都不建议这样做。都有比LIKE更好的内置日期和时间功能。

【讨论】:

    【解决方案2】:

    太简单了。如果您在 Adatok 表中有性别列,请尝试:-

    SELECT t1.Nev, 
       Count(t2.Datum) AS Edzes_szam 
    FROM   Adatok t1 
       INNER JOIN (SELECT DISTINCT Kod, 
                                   Datum 
                   FROM   Jelenlet 
                   WHERE  Datum LIKE '" + dtm_year_hkszpp_ym + "%') t2 
               ON t1.Azon_sima = t2.Kod 
    WHERE t1.gender = 'X'
    GROUP  BY t1.Nev
    

    否则,试试这个:-

    SELECT t1.Nev, 
       Count(t2.Datum) AS Edzes_szam 
    FROM   Adatok t1 
       INNER JOIN (SELECT DISTINCT Kod, 
                                   Datum 
                   FROM   Jelenlet 
                   WHERE  Datum LIKE '" + dtm_year_hkszpp_ym + "%'
                   AND gender = 'X') t2 
               ON t1.Azon_sima = t2.Kod 
    
    GROUP  BY t1.Nev
    

    【讨论】:

      猜你喜欢
      • 2015-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-28
      • 1970-01-01
      • 2022-01-10
      相关资源
      最近更新 更多