gpt4 book ai didi

android - SQLite COUNT JOIN DISTINCT

转载 作者:行者123 更新时间:2023-11-29 19:33:57 26 4
gpt4 key购买 nike

我确定这是重复的,但我找不到答案:

SQLITE 查询问题

表格:

  • 客户
  • 订单

关系:客户有很多订单

成功条件:

获取下单客户数

查询:

SELECT COUNT(Client.id) AS count
FROM Client
INNER JOIN Order
ON Order.id = Client.id
AND Order.storeId = Client.storeId // This is because Clients have many stores
WHERE
AND Order.id IS NOT NULL
AND Order.date BETWEEN '12-09-2016 16:00:00' AND '13-09-2016 16:00:00'

问题

如果客户 1、商店 1 有 3 个订单,则查询应返回 1,因为返回的是同一客户和同一商店 BUT 3 意思是不计算有订单的客户,而是订单本身

解决方案?请记住,这是 SQLite 并在 Android 4.1.1 中使用,因此某些 SQLite 函数可能不可用

最佳答案

内部查询获取所有有订单的客户。外部查询计算那些记录

select count(*)
from
(
SELECT Client.id
FROM Client
INNER JOIN Order ON Order.id = Client.id
AND Order.storeId = Client.storeId
WHERE Order.date BETWEEN '12-09-2016 16:00:00' AND '13-09-2016 16:00:00'
GROUP BY Client.id
) tmp

一个更简单的版本是计算不同(distinct)客户端的数量

  SELECT count(distinct Client.id)
FROM Client
INNER JOIN Order ON Order.id = Client.id
AND Order.storeId = Client.storeId
WHERE Order.date BETWEEN '12-09-2016 16:00:00' AND '13-09-2016 16:00:00'

关于android - SQLite COUNT JOIN DISTINCT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39480128/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com