【问题标题】:How to count items which meet a 'where' condition with multiple criteria in the same column如何在同一列中计算满足“where”条件且具有多个条件的项目
【发布时间】:2012-02-17 11:02:24
【问题描述】:

我是 SQL 新手,我正在使用 SQLite 对连锁零售店进行销售分析。

我目前正在尝试计算包含不同类别项目的交易数量。我的数据中的相关列是 uniqID(提供事务 ID)和类别。每个 uniqID 对该事务中的每个项目都有一行,即三个项目的事务将具有三行。这些行中的每一行都有自己的类别,即:

uniqID 类别 103 裤子 103裙子 103裙子 104跳线 104裙子

是否可以做一个计数函数来计算包含两个不同类别的唯一事务的数量?例如,有多少笔交易包含裤子和裙子? (在上面的例子中,答案应该是 1!)

我尝试了以下方法:

选择计数(不同的 uniqID),其中类别 = 裤子,类别 = 裙子;

但是,它一直将答案返回为 0,我知道这是不正确的。任何人都可以提出一种改写查询的方法吗?

非常感谢您的帮助!

【问题讨论】:

  • 嗯,我的数据示例并没有真正起作用 - 我试图创建一个表,ID 在左列,类别在右列...
  • 是的,当然有可能,但你怎么知道这不是真的?试过select * from yourtable where category = trousers and category = skirts;? (顺便说一句,您的 SQL 查询中缺少 FROM 关键字)

标签: sqlite count where


【解决方案1】:

category 不能同时有两个不同的值,使用 'or' 代替 'and'。

select count (distinct uniqID) where category = trousers or category = skirts;

【讨论】:

    【解决方案2】:

    如果有的话,应该是

    select count (distinct uniqID) where category = 'trousers' OR category = 'skirts';
    

    由于同一行中的类别不能同时具有值​​“裤子”和“裙子”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      • 2020-09-08
      相关资源
      最近更新 更多