根据状态laravel计算记录

时间:2016-06-21 08:11:29

标签: mysql laravel

我正在尝试根据Status

计算表中的记录
+--------|-----------|-------------+
|  id    |  Record   |   Status    |
|--------|-----------|-------------|
|   1    | 20        |    A        |
|--------|-----------|-------------|
|   2    | 10        |    A        |
|--------|-----------|-------------|
|   3    | 15        |    D        |
+----------------------------------+

问题是即时使用SUM查询以及计数查询。

->select(DB::raw('SUM(Record) as commission, COUNT(Status) as status'))
->get()

现在这可行,但不是基于Statust结果。我尝试过以下操作无法正常工作。

->select(DB::raw('SUM(Record) as commission, COUNT(Status = A) as status'))
->get()

->select(DB::raw('SUM(Record) as commission, COUNT(Status) as status WHERE Status = "A" '))
->get()

->select(DB::raw('SUM(Record) as commission, COUNT(Status = "A ") as status'))
->get()

1 个答案:

答案 0 :(得分:0)

改变 -

COUNT(STATUS = 'A')

要:

SUM(Status = 'A')

布尔表达式根据条件返回0/1COUNT(0)仍然会计为1,只有COUNT(NULL)不会向计数器添加1。另一方面,SUM()在条件为真时将为1,在为假时为0。