标签: having

MySQL:让HAVING选择也"null"

我有两张桌子:dilemmelike.第一个包含文章,第二个包含投票.脚本SELECT随机显示一篇文章,用户可以投票(喜欢和不喜欢).

我想创建一个查询,只显示超过5投票的文章,没有投票的文章等于0.

所以我尝试了这个:

SELECT d.ph1, d.ph2, d.id, SUM(l.vote) AS score
FROM dilemme d
LEFT JOIN like l
ON d.id = l.id_dilemma
WHERE d.valid = 'yup'
GROUP BY d.id HAVING SUM(l.vote) > 0
Run Code Online (Sandbox Code Playgroud)

它正确地向我显示了至少有一票并且投票总和大于0的行.这很好但是,如何选择没有投票的文章?我尝试了很多东西并做了一些研究,但无法解决我的问题.我认为INSERT INTO就像0投票一样,但我认为这不是一个好主意,因为它不是一个非常优化的解决方案.

提前致谢.PS:对不起我的英文,不是我的monthertongue;)

mysql select group-by having

4
推荐指数
1
解决办法
8280
查看次数

使用Eloquent实现group_by并在Laravel中使用

我在实现group_by和在Laravel中使用Eloquent进行查询时遇到了问题.

这是场景:

orders
 - id
 - qty

deliveries
 - id
 - qty
 - order_id
Run Code Online (Sandbox Code Playgroud)

我想使用联接来显示具有不完整交货的订单以及相应的余额:

Order::left_join('deliveries', 'orders.id', '=', 'deliveries.order_id')
     ->select(array('orders.*'), DB::raw('orders.qty - IFNULL(sum(deliveries.qty),0) AS balance')))
     ->group_by('order_id')
     ->having('balance', '>', 0)
     ->get();
Run Code Online (Sandbox Code Playgroud)

没有'having'子句,'balance'值可以正常工作.但是,在添加'having'子句时,结果表不会显示任何行.有没有人有任何想法?

提前致谢!

php group-by having laravel eloquent

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

Django queryset - 添加HAVING约束

我已经使用Django几年了但是我今天在HAVING为a 添加约束而苦苦挣扎GROUP BY.

我的查询集如下:

crm_models.Contact.objects\
.filter(dealercontact__dealer__pk__in=(265,),
         dealercontact__activity='gardening',
         date_data_collected__gte=datetime.date(2012,10,1),
         date_data_collected__lt=datetime.date(2013,10,1))\
.annotate(nb_rels=Count('dealercontact'))
Run Code Online (Sandbox Code Playgroud)

这给了我以下MySQL查询:

SELECT *
FROM `contact` 
LEFT OUTER JOIN `dealer_contact` ON (`contact`.`id_contact` = `dealer_contact`.`id_contact`) 
WHERE (`dealer_contact`.`active` = True 
   AND `dealer_contact`.`activity` = 'gardening'  
   AND `contact`.`date_data_collected` >= '2012-10-01'  
   AND `contact`.`date_data_collected` < '2013-10-01'
   AND `dealer_contact`.`id_dealer` IN (265)) 
GROUP BY `contact`.`id_contact`
ORDER BY NULL;
Run Code Online (Sandbox Code Playgroud)

我会得到这个HAVING约束我需要的东西:

HAVING SUM(IF(`dealer_contact`.`type`='customer', 1, 0)) = 0 
Run Code Online (Sandbox Code Playgroud)

如何使用Django Queryset修复此问题?我在这个实例中需要一个查询集.

这里我只使用注释才能GROUP BY开启contact.id_contact.

编辑:我的目标是获得在dealercontact中没有"客户"关系但具有"ref"关系的联系人(当然根据WHERE子句).

楷模

class Contact(models.Model):
    id_contact = models.AutoField(primary_key=True)
    title = …
Run Code Online (Sandbox Code Playgroud)

django group-by sum having django-queryset

4
推荐指数
1
解决办法
7545
查看次数

SQL Query获取常见记录

我有一张桌子如下

ID  Username GroupID
1   venkat     2
2   venkat     3
3   ramu       1
4   ramu       2
Run Code Online (Sandbox Code Playgroud)

使用sql语句我想检索groupids 2,3中可用的所有用户名

在这种情况下,只有Venkat是groupid 2和3中可用的用户名

请帮助我

sql select group-by distinct having

4
推荐指数
2
解决办法
2491
查看次数

MySQL-条件分组依据

我试图一起使用CASE和GROUP BY,仅在它们符合CASE标准时才有条件地过滤结果,如果不匹配,则返回结果,就好像没有指定GROUP BY标准一样。

这是我所拥有的简单模型:

es.id | es.acct_num | p.id | p.name
1001  | 4306-0      | 1569 | The High School
1002  | 4306-0      | 1569 | The High School
665   | 5906-7      | 981  | Rec Center
783   | 5906-7      | 1221 | The Gym
Run Code Online (Sandbox Code Playgroud)

这是我想看到的:

es.id | es.acct_num | p.id | p.name
1001  | 4306-0      | 1569 | The High School
1002  | 4306-0      | 1569 | The High School
0     | 5906-7      | 0    | MULTI-SITE
Run Code Online (Sandbox Code Playgroud)

由于es.acct_num 5906-7 …

mysql group-by case having

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

MySQL 错误:在 HAVING 子句中使用了非分组字段

有没有办法纠正这个查询,以便它与ONLY_FULL_GROUP_BY启用一起工作?

SELECT LOWER(s) AS lower_s, SUM(i) AS sum_i
FROM t
GROUP BY 1
HAVING LENGTH(lower_s) < 5
Run Code Online (Sandbox Code Playgroud)

它给出了错误信息

HAVING 子句中使用了非分组字段“lower_s”

小提琴

mysql sql select group-by having

4
推荐指数
1
解决办法
3696
查看次数

SQL:HAVING子句

请参阅以下SQL语句:

SELECT datediff("d", MAX(invoice.date), Now) As Date_Diff
      , MAX(invoice.date) AS max_invoice_date
      , customer.number AS customer_number
FROM invoice 
    INNER JOIN customer 
        ON invoice.customer_number = customer.number
GROUP BY customer.number 
Run Code Online (Sandbox Code Playgroud)

如果添加以下内容:

HAVING datediff("d", MAX(invoice.date), Now) > 365
Run Code Online (Sandbox Code Playgroud)

这会简单地排除Date_Diff <= 365的行吗?

这里的HAVING条款会有什么影响?

编辑:我没有体验到这里的答案.mdb的副本位于http://hotfile.com/dl/40641614/2353dfc/test.mdb.html(无宏或病毒).VISDATA.EXE用于执行查询.

EDIT2:我认为问题可能是VISDATA,因为我通过DAO遇到了不同的结果.

sql ms-access having

3
推荐指数
1
解决办法
4881
查看次数

选择ColA = ColB的行,并添加一个新列,告知ColA中的原始数据是否重复

我试图找出如何查询表(该表实际上是一个结果集,因此它将是一个子查询),将其分组ColA=ColB(见下文),并一步创建一个计算字段.

所以,如果我的测试数据看起来像

ColA    ColB    ColC 
1       1       aaa 
1       2       bbbb    
1       3       cccc    
2       2       dddd    
3       3       eeee    
3       4       ffff    
3       5       gggg    
3       6       hhhh    
4       4       iiii    
5       5       jjjj    
6       6       kkkk    
6       7       llll    
6       8       mmmm    

我想只检索行,ColA=ColB并添加一个新列,告诉我原始数据是否ColA重复.见下文.

ColA   ColB    ColC    multiples
1      1       aaaa    yes
2       2       dddd    no
3       3       eeee    yes
4       4       iiii    no
5       5       jjjj    no
6       6       kkkk    yes

有人可以帮我解决语法问题吗?我一直在玩Group …

sql oracle group-by case having

3
推荐指数
1
解决办法
432
查看次数

MySQL GROUP BY ...具有不同的值相同的字段

我想用类似下面的检索中的所有行的查询events有至少一个相应event_attendances的行'male''female'.下面的查询不返回行(其中当然有一些events是具有event_attendances从男女).

有没有一种方法可以在没有子查询的情况下执行此操作(由于在我的应用程序中生成SQL的方式,子查询对我来说实现起来要困难得多)?

SELECT * FROM events e
LEFT JOIN event_attendances ea ON (e.id = ea.event_id)
GROUP BY e.id
HAVING ea.gender = 'female' AND ea.gender = 'male'
Run Code Online (Sandbox Code Playgroud)

mysql join group-by having

3
推荐指数
1
解决办法
5672
查看次数

使用HAVING时'无效列名'

我正在使用Microsoft SQL SERVER 2014.

以下是我的查询

SELECT type, SUM(calories) AS total_calories
FROM exercise_logs
GROUP BY type
HAVING total_calories > 150;
Run Code Online (Sandbox Code Playgroud)

我得到了错误

消息207,级别16,状态1,行2无效的列名称'total_calories'.

这是一个非常简单的表(我是sql和学习它的新手).谁能指出我做错了什么?谢谢.

sql sql-server having

3
推荐指数
2
解决办法
2718
查看次数