Mysql 混合计数和存在于一个查询中
假设我们有一个表,并将customerid和orderid保存在表上 在一次查询中统计所有订单并检查特定客户ID是否存在的最佳方法是什么 我知道这个查询是错误的,但我强迫写,因为Stackoverflow不允许我发布简短的问题 例如: (表名tbTest) 你是说Mysql 混合计数和存在于一个查询中,mysql,sql,sql-server,sql-server-2008,Mysql,Sql,Sql Server,Sql Server 2008,假设我们有一个表,并将customerid和orderid保存在表上 在一次查询中统计所有订单并检查特定客户ID是否存在的最佳方法是什么 我知道这个查询是错误的,但我强迫写,因为Stackoverflow不允许我发布简短的问题 例如: (表名tbTest) 你是说 SELECT CustomerID, COUNT(OrderID) FROM dbo.tbTest GROUP BY CustomerID; 或许 DECLARE @CustomerID INT; SET @CustomerID
SELECT CustomerID, COUNT(OrderID)
FROM dbo.tbTest
GROUP BY CustomerID;
或许
DECLARE @CustomerID INT;
SET @CustomerID = 20;
SELECT COUNT(*)
FROM dbo.tbTest
WHERE CustomerID = @CustomerID;
请试着用下面的方法
SELECT COUNT(ORDERID),
CASE
WHEN EXISTS(SELECT ID FROM tbTest WHERE customerid = {n}) then 'Exist'
ELSE 'Not Exist'
END
FROM tbTest
在第一次查询中,首先按customerid分组,然后获取customerid的订单计数,在第二次查询中获取customerYes的计数,我知道。从你的问题很难看出你想要什么。谢谢,这是正确的,但我有一个问题。是否检查sql server案例表达式中的任何行?欢迎。我不确定你问题的答案,但请检查一些样本数据,以便你能确定。
SELECT COUNT(ORDERID),
CASE
WHEN EXISTS(SELECT ID FROM tbTest WHERE customerid = {n}) then 'Exist'
ELSE 'Not Exist'
END
FROM tbTest