标签: having

HAVING和WHERE有什么区别?

我必须用错误的方式搜索,或者我有一个愚蠢的时刻.

声明HAVING和声明之间的区别WHERESQL SELECT什么?

编辑:我已经将史蒂文的答案标记为正确答案,因为它包含链接上的关键信息:

何时GROUP BY不使用,HAVING表现得像一个WHERE条款

我见过的WHERE情况没有GROUP BY,也是我的困惑开始的地方.当然,在您知道这一点之前,您无法在问题中指定它.

非常感谢所有非常有启发性的答案.

sql where having

255
推荐指数
8
解决办法
30万
查看次数

SQL - 有VS在哪里

我有以下两个表:

1. Lecturers (LectID, Fname, Lname, degree).
2. Lecturers_Specialization (LectID, Expertise).
Run Code Online (Sandbox Code Playgroud)

我想找到专业化程度最高的讲师.当我尝试这个时,它不起作用:

SELECT
  L.LectID, 
  Fname, 
  Lname 
FROM Lecturers L, 
     Lecturers_Specialization S
WHERE L.LectID = S.LectID
AND COUNT(S.Expertise) >= ALL (SELECT
  COUNT(Expertise)
FROM Lecturers_Specialization
GROUP BY LectID);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试这个时,它有效:

SELECT
  L.LectID,
  Fname,
  Lname 
FROM Lecturers L,
     Lecturers_Specialization S
WHERE L.LectID = S.LectID
GROUP BY L.LectID,
         Fname,
         Lname 
HAVING COUNT(S.Expertise) >= ALL (SELECT
  COUNT(Expertise)
FROM Lecturers_Specialization
GROUP BY LectID); 
Run Code Online (Sandbox Code Playgroud)

是什么原因?谢谢.

sql where having

184
推荐指数
6
解决办法
16万
查看次数

用于查找count> 1的记录的SQL查询

我有一张名为的桌子PAYMENT.在此表中,我有一个用户ID,一个帐号,一个邮政编码和一个日期.我想查找所有使用相同帐号每天付款多次的用户的所有记录.

更新:此外,应该有一个过滤器,而不是只计算邮政编码不同的记录.

这就是表格的样子:

| user_id | account_no | zip   |      date |
|       1 |        123 | 55555 | 12-DEC-09 | 
|       1 |        123 | 66666 | 12-DEC-09 |
|       1 |        123 | 55555 | 13-DEC-09 |
|       2 |        456 | 77777 | 14-DEC-09 |
|       2 |        456 | 77777 | 14-DEC-09 |
|       2 |        789 | 77777 | 14-DEC-09 |
|       2 |        789 | 77777 | 14-DEC-09 |

结果看起来应该类似于:

| …

sql group-by count having

161
推荐指数
3
解决办法
56万
查看次数

MySQL - 在WHERE子句中使用COUNT(*)

我试图在MySQL中完成以下内容(请参阅pseudo代码)

SELECT DISTINCT gid
FROM `gd`
WHERE COUNT(*) > 10
ORDER BY lastupdated DESC
Run Code Online (Sandbox Code Playgroud)

有没有办法在不使用WHERE子句中的(SELECT ...)的情况下执行此操作,因为这看起来像是浪费资源.

mysql count having aggregation

150
推荐指数
8
解决办法
25万
查看次数

Linq与团队有计数

如何在linq(vb.net)中编写此查询?

 select B.Name
 from Company B
 group by B.Name
 having COUNT(1) > 1
Run Code Online (Sandbox Code Playgroud)

linq group-by count having

123
推荐指数
2
解决办法
12万
查看次数

你能在mysql的WHERE子句中使用别名吗?

我需要在WHERE子句中使用别名,但它一直告诉我它是一个未知的列.有什么方法可以解决这个问题吗?我需要选择评级高于x的记录.评级计算如下:

sum(reviews.rev_rating)/count(reviews.rev_id) as avg_rating
Run Code Online (Sandbox Code Playgroud)

mysql sql having having-clause

119
推荐指数
3
解决办法
9万
查看次数

MySQL从另一个表加入和COUNT(*)

我有两张桌子:groupsgroup_members.

groups表包含每个组的所有信息,例如其ID,标题,描述等.

group_members表中,它列出了每个组的所有成员,如下所示:

group_id | user_id
1 | 100
2 | 23
2 | 100
9 | 601
Run Code Online (Sandbox Code Playgroud)

基本上,我想在页面上列出三个组,我只想列出具有四个以上成员的组.在<?php while ?>循环中,我想要有四个成员,他们是该组的一部分.我没有遇到列出组的麻烦,并将成员列在另一个内部循环中,我只是无法优化组,以便只有超过4个成员的组显示.

有人知道怎么做这个吗?我确信这是MySQL加入的.

mysql group-by count left-join having

38
推荐指数
2
解决办法
9万
查看次数

PostgreSQL在哪里计算条件

我在PostgreSQL中有以下查询:

SELECT 
    COUNT(a.log_id) AS overall_count
FROM 
    "Log" as a, 
    "License" as b 
WHERE 
    a.license_id=7 
AND 
    a.license_id=b.license_id 
AND
    b.limit_call > overall_count
GROUP BY 
    a.license_id;
Run Code Online (Sandbox Code Playgroud)

为什么我会收到此错误:

错误:列"overall_count"不存在

我的表结构:

License(license_id, license_name, limit_call, create_date, expire_date)
Log(log_id, license_id, log, call_date)
Run Code Online (Sandbox Code Playgroud)

我想检查许可证是否已达到特定月份的通话限制.

sql postgresql group-by having

33
推荐指数
3
解决办法
4万
查看次数

在MongoDB GROUP BY中进行HAVING的正确方法是什么?

对于SQL中的这个查询(查找重复项):

SELECT userId, name FROM col GROUP BY userId, name HAVING COUNT(*)>1
Run Code Online (Sandbox Code Playgroud)

我在MongoDB中执行了这个简单的查询:

res = db.col.group({key:{userId:true,name:true}, 
                     reduce: function(obj,prev) {prev.count++;}, 
                     initial: {count:0}})
Run Code Online (Sandbox Code Playgroud)

我添加了一个简单的Javascript循环来遍历结果集,并执行了一个过滤器来查找count> 1的所有字段,如下所示:

for (i in res) {if (res[i].count>1) printjson(res[i])};
Run Code Online (Sandbox Code Playgroud)

除了在客户端使用javascript代码之外,还有更好的方法吗?如果这是最好/最简单的方式,说它是,这个问题将有助于某人:)

group-by having mongodb having-clause

27
推荐指数
1
解决办法
2万
查看次数

...其中count(col)> 1

我有这样一张桌子:

+-----+-----+-------+
| id  | fk  | value |
+-----+-----+-------+
| 0   | 1   | peter |
| 1   | 1   | josh  |
| 3   | 2   | marc  |
| ... | ... | ...   |
Run Code Online (Sandbox Code Playgroud)

我现在想要获得具有多个值的所有条目.预期结果将是:

+-----+-------+
| fk  | count |
+-----+-------+
| 1   | 2     |
| ... | ...   |
Run Code Online (Sandbox Code Playgroud)

我试图像这样实现:

select fk, count(value) from table where count(value) > 1;
Run Code Online (Sandbox Code Playgroud)

但甲骨文并不喜欢它.

所以我试过这个......

select * from (
    select fk, count(value) as cnt from table
) …
Run Code Online (Sandbox Code Playgroud)

sql oracle group-by having

20
推荐指数
1
解决办法
5万
查看次数