SQL中的多重计数查询返回什么?

SQL中的多重计数查询返回什么?,sql,sqlite,Sql,Sqlite,我有一个产品表,每个产品都可能交付,闲置,发货,准备 我想显示一个列表,列出每个州的产品数量,我可以在这里查看如何查询: 但是,此查询返回什么,以及如何将返回值分配给4个整数,例如称为deliveredCount,idleCount,shippingCount,preparingCount PS:作为记录,我在Android和JAVA中使用SQLite和OrmLite 编辑:在这个问题中,人们解释了当您想要获得多个计数时,查询应该做什么,但他们没有告诉我们该查询返回什么以及以什么格式返回。例如

我有一个
产品
表,每个产品都可能
交付
闲置
发货
准备

我想显示一个列表,列出每个州的产品数量,我可以在这里查看如何查询:

但是,此查询返回什么,以及如何将返回值分配给4个整数,例如称为
deliveredCount
idleCount
shippingCount
preparingCount

PS:作为记录,我在Android和JAVA中使用SQLite和OrmLite

编辑:在这个问题中,人们解释了当您想要获得多个计数时,查询应该做什么,但他们没有告诉我们该查询返回什么以及以什么格式返回。例如:

SELECT a.distributor_id,
    (SELECT COUNT(*) FROM myTable WHERE level='personal' and distributor_id = a.distributor_id) as PersonalCount,
    (SELECT COUNT(*) FROM myTable WHERE level='exec' and distributor_id = a.distributor_id) as ExecCount,
    (SELECT COUNT(*) FROM myTable WHERE distributor_id = a.distributor_id) as TotalCount
FROM myTable a ;
此文件的返回类型和格式是什么?

PS2:有人真的很快否决了我的问题,因为它缺乏足够的信息。然后我编辑了它,但否决票仍然存在:(

它将返回4行(假设四个唯一的状态值):


很难说清楚,但听起来你需要在你提供的链接中使用一个版本的顶级答案

有点像

SELECT ProductID,
    COUNT(*) AS Total,
    SUM(CASE WHEN pStatus = 'delivered' THEN 1 ELSE 0 END) DeliveredCount,
    SUM(CASE WHEN pStatus = 'idle' THEN 1 ELSE 0 END) IdleCount,
    SUM(CASE WHEN pStatus = 'shipping' THEN 1 ELSE 0 END) ShippingCount,
    SUM(CASE WHEN pStatus = 'preparing' THEN 1 ELSE 0 END) PreparingCount
FROM ProductTable
GROUP BY ProductID
ProductID | DeliveredCount | IdleCount | ...
1         | 250            | 3250      | ...
这将返回类似的结果

SELECT ProductID,
    COUNT(*) AS Total,
    SUM(CASE WHEN pStatus = 'delivered' THEN 1 ELSE 0 END) DeliveredCount,
    SUM(CASE WHEN pStatus = 'idle' THEN 1 ELSE 0 END) IdleCount,
    SUM(CASE WHEN pStatus = 'shipping' THEN 1 ELSE 0 END) ShippingCount,
    SUM(CASE WHEN pStatus = 'preparing' THEN 1 ELSE 0 END) PreparingCount
FROM ProductTable
GROUP BY ProductID
ProductID | DeliveredCount | IdleCount | ...
1         | 250            | 3250      | ...

你可能想试试这个

SELECT
SUM(CASE WHEN Prod = 'delivered' THEN 1 ELSE 0 END) as deliveredCount,
SUM(CASE WHEN Prod = 'idle' THEN 1 ELSE 0 END) as idleCount,
SUM(CASE WHEN Prod = 'shipping' THEN 1 ELSE 0 END) as shippingCount,
SUM(CASE WHEN Prod = 'preparing' THEN 1 ELSE 0 END) as preparingCount
FROM Product

你指的是什么查询?你只会将一个堆栈溢出问题与两个查询和多个答案链接起来…你需要包括,想要尝试..用更多细节编辑的问题你必须有一个sum()每个状态都有条件。我的问题是这个查询返回什么以及以什么格式返回?谢谢。那么我如何提取值并在Java中将它们分配给整数(或者我应该为此发布另一个问题)不用担心,是的,这将是另一个问题,我的朋友。顺便问一下,如果我只有一种产品,如何修改此查询?我应该选择什么?我的问题是此查询返回什么以及以什么格式?编辑以显示示例报告。它返回一个带有两个值的表。谢谢。那么我如何提取值并将其分配给inteJava中的gers(或者我应该为此发布另一个问题)