计算一个表中与另一表中条件匹配的记录

克里斯维尔德贝格

我正在尝试从 table1 中获取与 table2 中的类别匹配的记录计数。

例如,表格可能如下所示:

ID     A          
1      value1   
2      value2
3      value3
4      value2

ID     A        Category
1      value1   Category1
2      value2   Category1
3      value3   Category2

现在假设我想计算 Table1 中属于 Category1 的记录

我想出的查询:

SELECT count(table1.A) as count, table2.Category from table1, table2 
WHERE table2.Category = 'Category1' AND table1.A = table2.A
GROUP BY table2.Category
ORDER BY count DESC

预期结果:

Category1  3

我得到的结果:

Category1  6

计数是A在表1中出现的次数乘以A在表2中出现的次数。我也尝试了 LEFT JOIN,但这给了我相同的结果。

我怎样才能防止这种情况并获得 table1 的计数?

比尔·卡文

你可以使用 COUNT(DISTINCT) 来减少它的计数,只要你使用一个你知道在 table1 中是唯一的列。

SELECT COUNT(DISTINCT table1.id) as count, table2.Category 
FROM table1 JOIN table2 ON table1.A = table2.A 
WHERE table2.Category = 'Category1'
GROUP BY table2.Category
ORDER BY count DESC

PS:注意我也将其更改为使用现代 JOIN 语法。这不是解决方案所必需的,但现在是我们停止使用 1989 年逗号样式连接语法的时候了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据另一个表中的条件选择表中的记录?

来自分类Dev

flask-sqlalchemy:查询一个表中的记录,而另一表中没有相关记录(或某个值的记录)

来自分类Dev

从一个表中选择记录,并使用另一表中的列对结果进行排序

来自分类Dev

如何从一个表中其ID出现在另一表的列中的表中过滤掉记录

来自分类Dev

Left Join / IS NULL如何消除一个表中存在而不是另一表中的记录?

来自分类Dev

在主表中查找与SQL Server中另一个表中的记录匹配的记录

来自分类Dev

将一个表中的行与另一表中的总和连接

来自分类Dev

从一个表中选择与客户或另一表中的“ Customers”子项相关联的票证记录

来自分类Dev

将记录插入到表中,其中一个来自另一表

来自分类Dev

一个表中的金额总和,而另一表中的总金额

来自分类Dev

如何基于一个表与另一个数据库中的同一表更新数据库中的表记录?

来自分类Dev

如何将一个表中的部分字符串与另一表中的ID匹配?

来自分类Dev

如何从一个表中选择在另一表中由于某种条件而在另一表中不存在的所有记录?

来自分类Dev

从另一个表更新表中的记录

来自分类Dev

计算一个表中发生在另一个表中的最大日期前后的记录

来自分类Dev

SQL:一个表中的所有记录,以及另一表中的所有记录,包括null

来自分类Dev

Mysql查询可基于字段数的数量将一个表中的记录转换为另一表中的记录数

来自分类Dev

将一个表中字段的值用作另一表中字段的列名

来自分类Dev

MySQL查询-一个表中的单行与另一表中的多行

来自分类Dev

如何将一个表中的数据移动到30天以上记录的另一表中?

来自分类Dev

在一个表中查找每个ID,在另一表中插入行

来自分类Dev

如何从一个表中其ID出现在另一表的列中的表中过滤掉记录

来自分类Dev

计算从一个表到另一表的一列中多行的值

来自分类Dev

列出一个表的名称,该表的ID与另一表中的条目匹配

来自分类Dev

SQL查询-从一个表中选择全部,在另一个表中匹配记录

来自分类Dev

从一个表中选择所有记录并从另一个表中匹配记录

来自分类Dev

按多列显示一个表中不在另一表中的记录

来自分类Dev

加入时更改一个表中的行值以匹配另一表中的行值

来自分类Dev

从与同一表中的另一个值匹配的行中选择一个值

Related 相关文章

  1. 1

    根据另一个表中的条件选择表中的记录?

  2. 2

    flask-sqlalchemy:查询一个表中的记录,而另一表中没有相关记录(或某个值的记录)

  3. 3

    从一个表中选择记录,并使用另一表中的列对结果进行排序

  4. 4

    如何从一个表中其ID出现在另一表的列中的表中过滤掉记录

  5. 5

    Left Join / IS NULL如何消除一个表中存在而不是另一表中的记录?

  6. 6

    在主表中查找与SQL Server中另一个表中的记录匹配的记录

  7. 7

    将一个表中的行与另一表中的总和连接

  8. 8

    从一个表中选择与客户或另一表中的“ Customers”子项相关联的票证记录

  9. 9

    将记录插入到表中,其中一个来自另一表

  10. 10

    一个表中的金额总和,而另一表中的总金额

  11. 11

    如何基于一个表与另一个数据库中的同一表更新数据库中的表记录?

  12. 12

    如何将一个表中的部分字符串与另一表中的ID匹配?

  13. 13

    如何从一个表中选择在另一表中由于某种条件而在另一表中不存在的所有记录?

  14. 14

    从另一个表更新表中的记录

  15. 15

    计算一个表中发生在另一个表中的最大日期前后的记录

  16. 16

    SQL:一个表中的所有记录,以及另一表中的所有记录,包括null

  17. 17

    Mysql查询可基于字段数的数量将一个表中的记录转换为另一表中的记录数

  18. 18

    将一个表中字段的值用作另一表中字段的列名

  19. 19

    MySQL查询-一个表中的单行与另一表中的多行

  20. 20

    如何将一个表中的数据移动到30天以上记录的另一表中?

  21. 21

    在一个表中查找每个ID,在另一表中插入行

  22. 22

    如何从一个表中其ID出现在另一表的列中的表中过滤掉记录

  23. 23

    计算从一个表到另一表的一列中多行的值

  24. 24

    列出一个表的名称,该表的ID与另一表中的条目匹配

  25. 25

    SQL查询-从一个表中选择全部,在另一个表中匹配记录

  26. 26

    从一个表中选择所有记录并从另一个表中匹配记录

  27. 27

    按多列显示一个表中不在另一表中的记录

  28. 28

    加入时更改一个表中的行值以匹配另一表中的行值

  29. 29

    从与同一表中的另一个值匹配的行中选择一个值

热门标签

归档