这篇文章主要围绕SQL计数where子句和sql语句计数展开,旨在为您提供一份详细的参考资料。我们将全面介绍SQL计数where子句的优缺点,解答sql语句计数的相关问题,同时也会为您带来mysql–
这篇文章主要围绕SQL计数where子句和sql语句计数展开,旨在为您提供一份详细的参考资料。我们将全面介绍SQL计数where子句的优缺点,解答sql语句计数的相关问题,同时也会为您带来mysql – 带有where子句的SQL MIN函数、mysql – 条件Where子句替代、mysql — where子句不明确、Mysql-where子句与having子句的区别的实用方法。
本文目录一览:- SQL计数where子句(sql语句计数)
- mysql – 带有where子句的SQL MIN函数
- mysql – 条件Where子句替代
- mysql — where子句不明确
- Mysql-where子句与having子句的区别
SQL计数where子句(sql语句计数)
我有以下SQL语句:
SELECT [l.LeagueId] AS LeagueId, [l.LeagueName] AS NAME, [lp.PositionId] FROM (Leagues l INNER JOIN Lineups lp ON l.LeagueId = lp.LeagueId) WHERE (lp.PositionId = 1) OR (lp.PositionId = 3) OR (lp.PositionId = 2)
我真正需要的是获取位置计数大于数字的行。就像是:
SELECT [l.LeagueId] AS LeagueId, [l.LeagueName] AS NAME, [lp.PositionId] FROM (Leagues l INNER JOIN Lineups lp ON l.LeagueId = lp.LeagueId) WHERE Count(lp.PositionId = 1) > 2 OR Count(lp.PositionId = 3) > 6 OR Count(lp.PositionId = 2) > 3
有什么办法可以在SQL中做到这一点?
答案1
小编典典这个怎么样?:
SELECT [l.LeagueId] AS LeagueId, [l.LeagueName] AS NAME FROM (Leagues l INNER JOIN Lineups lp ON l.LeagueId = lp.LeagueId) GROUP BY [l.LeagueId], [l.LeagueName] HAVING SUM(CASE WHEN lp.PositionId = 1 THEN 1 ELSE 0 END) > 2 OR SUM(CASE WHEN lp.PositionId = 3 THEN 1 ELSE 0 END) > 6 OR SUM(CASE WHEN lp.PositionId = 2 THEN 1 ELSE 0 END) > 3
mysql – 带有where子句的SQL MIN函数
这是我的项目表
Project Table
JNo Name City
J1 Proj1 London
J2 Proj2 Paris
J3 Proj3 athens
J4 Proj4 India
这是我的货运表
Shipment
SNo PNo JNo Qty
S1 P1 J1 50
S1 P1 J2 90
S1 P2 J1 40
S1 P3 J3 20
S2 P1 J3 110
S2 P2 J2 30
S2 P4 J3 10
S2 P3 J1 100
S3 P1 J3 80
S3 P4 J2 70
S3 P4 J2 70
S4 P1 J3 20
S4 P2 J1 60
我想要提供最小数量的项目名称.
我试过了.但它只返回最小数量值
这是我的代码
select min(qty) from shipment where jno IN(select jno from project)
select p.name from Project p,Shipment s where s.JNo=p.JNo and s.Qty in (select min(qty) from shipment)
mysql – 条件Where子句替代
我使用xml来显示查询结果.我有一个与我的查询相关的问题.在客户表中说我有一个数据,其id不是任何其他表中的forigne键,但我仍然想显示数据.我,使用左连接.但问题在于其他表条件(Where子句pr.fActive = 1 …),因此我无法显示仅存在于customer表中但不存在于其他表中的数据.如何做到这一点
<Table>customer cu</Table>
<Joins>
left join customerprogramxref cuprxref on cu.ixcustomer=cuprxref.ixcustomer
left join tblprogram pr on cuprxref.ixprogram=pr.ixprogram
left join programworkpackagexref prwpxref on pr.ixprogram= prwpxref.ixprogram
left join workpackage wp on wp.ixworkpackage =prwpxref.ixworkpackage
left join workpackageactivityxref wpactxref on wpactxref.ixworkpackage=wp.ixworkpackage
left join activity act on act.ixactivity=wpactxref.ixactivity
</Joins>
<WhereClause>
cu.fStatus=1 AND pr.fActive=1 AND pr.fDeleted=0 AND wp.fStatus=1 AND act.fStatus=1
</WhereClause>
解决方法:
由于LEFT JOIN,在右边部分,未加入时为NULL.
试试这个:
cu.fStatus=1
AND (pr.fActive=1 OR pr.fActive IS NULL)
AND (pr.fDeleted=0 OR pr.fDeleted IS NULL)
AND ...
mysql — where子句不明确
SELECT cat.CategoryID as CategoryID, count(p.ProductID) as CountProducts FROM Category as cat LEFT JOIN Products as p on p.CategoryID IN (SELECT CategoryID FROM Category as cd WHERE cd.ParrentCategoryID = ''876'') WHERE CategoryID = ''876'' ORDER by Name
我们得到错误-“ where子句不明确的列’CategoryID’”。
告诉我请怎么会好?
答案1
小编典典您得到的错误告诉CategoryID
您WHERE
子句中的列是不明确的,这意味着系统存在标识适当列的问题,因为存在多个CategoryID
列。
为了解决此问题,请使用别名指定要用于WHERE
子句的列:
SELECT cat2.CategoryID AS CategoryID ,cat2.Name AS CategoryName ,COUNT(p.ProductID) AS CountProductsFROM Category AS catINNER JOIN Category AS cat2 ON cat2.ParrentCategoryID = cat.CategoryIDINNER JOIN Products AS p ON p.CategoryID = cat2.CategoryIDWHERE cat.CategoryID = ''876''GROUP BY cat2.CategoryID, cat2.NameORDER BY cat2.Name
我还更改了查询以获取相同的结果,但我没有使用LEFT JOIN
+IN
子句+子查询的组合,而是使用了INNERJOIN
子句。使用此查询,您只需定义CategoryID
一次所需的内容,它将自动获取每个子类别。
我不确定您的查询是否正确运行,因为您正在使用该COUNT
功能,而没有按CategoryID
…分组结果
希望这会帮助你。
Mysql-where子句与having子句的区别
- 顺序问题:where子句必须放在group子句之前;而having子句必须在group子句之后
1.Where子句
2.having子句
- 字段问题:where子句只可以处理数据表中的数据;having只能处理在group by子句中出现的字段、select的列的字段或聚合函数处理过的列、外部查询中的字段。having根据前面查询出来的是什么就可以在后面接什么
1.having子句的字段必须出现在检索中(select的查询列、group by中的列、外查询中的列)或者是聚合函数处理后的列,可以是别名
2.where子句中的字段必须是数据表(物理表)中的列名,不能是别名或者聚合函数
- having通常是与group子句连用,用于进一步说明
我们今天的关于SQL计数where子句和sql语句计数的分享已经告一段落,感谢您的关注,如果您想了解更多关于mysql – 带有where子句的SQL MIN函数、mysql – 条件Where子句替代、mysql — where子句不明确、Mysql-where子句与having子句的区别的相关信息,请在本站查询。
本文标签: