小编nul*_*lll的帖子

按年份和月份汇总分组

我有一个带有两个字段的工作表Movements:

mydate      | amount
2009-01-01  | 10.00
2009-01-02  | 13.00
2009-02-01  | 11.00
2009-02-05  | 12.00
2009-02-08  | 52.00
Run Code Online (Sandbox Code Playgroud)

我希望在另一个工作表MonthSum中显示按列日期的年份+月份分组的列数量中的数据总和:

mydate      | amount
2009-01     | 23.00
2009-02     | 75.00
Run Code Online (Sandbox Code Playgroud)

我不想指定电子表格必须总和的单元格,我想要一个通用的公式来按月+年分组我的数据.如果我在MySQL数据库上,我会这样做:

SELECT DATE_FORMAT('%Y-%m', mydate), SUM(amount) 
FROM mytable GROUP BY DATE_FORMAT('%Y-%m', mydate)
Run Code Online (Sandbox Code Playgroud)

我需要解决方案才能使用Google Spreadsheets.

我认为可能的解决方案是使用SUMIF或数据透视表或Google Spreadsheets QUERY 函数.

google-sheets

43
推荐指数
3
解决办法
6万
查看次数

在列中显示php-cli输出

我想在php-cli脚本中输出列中可变长度的数据

例:

$pepole = Array(
  'Mirco Dellarovere' => 'Artista',
  'Nino Pepe' => 'Attore',
  'Zoe Yan' => 'Futurista',
  'Mino' => 'Elettricista'
);

foreach($pepole as $name => $work)
  {
  echo "$name\t$work\n";
  }
Run Code Online (Sandbox Code Playgroud)

输出将是

Mirco Dellarovere       Artista
Nino Pepe       Attore
Zoe Yan Futurista
Mino    Elettricista
Run Code Online (Sandbox Code Playgroud)

但我想这样

Mirco Dellarovere       Artista
Nino Pepe               Attore
Zoe Yan                 Futurista
Mino                    Elettricista
Run Code Online (Sandbox Code Playgroud)

如何?

:) 谢谢

php

9
推荐指数
1
解决办法
5566
查看次数

为什么MySQL处理é与e相同?

我正在使用Django Web应用程序将Unicode字符串存储在MySQL数据库中.我可以很好地存储Unicode数据,但是在查询时,我发现它é并被e视为它们是相同的字符:

In [1]: User.objects.filter(last_name='Jildén')
Out[1]: [<User: Anders Jildén>]

In [2]: User.objects.filter(last_name='Jilden')
Out[2]: [<User: Anders Jildén>]
Run Code Online (Sandbox Code Playgroud)

直接使用MySQL shell时也是如此:

mysql> select last_name from auth_user where last_name = 'Jildén';
+-----------+
| last_name |
+-----------+
| Jildén   |
+-----------+
1 row in set (0.00 sec)

mysql> select last_name from auth_user where last_name = 'Jilden';
+-----------+
| last_name |
+-----------+
| Jildén   |
+-----------+
1 row in set (0.01 sec)
Run Code Online (Sandbox Code Playgroud)

以下是数据库字符集设置:

mysql> SHOW variables LIKE '%character_set%';
+--------------------------+------------------------------------------------------+
| Variable_name            | …
Run Code Online (Sandbox Code Playgroud)

mysql unicode collation utf-8 character-encoding

8
推荐指数
2
解决办法
1990
查看次数

非阻塞flock函数的返回值与$ wouldblock参数之间的区别?

我试图理解非阻塞flock和willblock参数

$fp = fopen('/tmp/lock.txt', 'r+'); 
if(flock($fp, LOCK_EX | LOCK_NB, $wouldblock)) {
  echo 'Lock obtained';
}
else{
  echo 'Unable to obtain lock';
}
fclose($fp);
Run Code Online (Sandbox Code Playgroud)

文档说关于wouldblock:

如果锁将阻塞(EWOULDBLOCK错误条件),则可选的第三个参数设置为1.

在测试环境中重现并发条件,如果另一个进程已获得锁定,则flock函数将立即返回FALSE(非阻塞)

那么,如果非阻塞模式下的flock函数的返回值已经告诉我无法获得锁定,为什么我要关心$ willblock值?

我无法区分flock函数返回FALSE和$ wouldblock参数设置为1,以及$ wouldblock参数有用的区别.

php concurrency flock

7
推荐指数
1
解决办法
1531
查看次数

Solr过滤器查询包括NOT和OR

对于Solr中的过滤器查询,我需要包括不属于某种类型的所有文档,以及该类型中具有特定字段值的所有文档.

我试过这个:

fq=(-type_id:(A) OR content:(['' TO *]))
Run Code Online (Sandbox Code Playgroud)

但是它排除了type_idB,C等有空的文件content.(type_id是一个string领域,contenttext.)

我已经看到了这个问题:复杂的SOLR查询包括NOT和OR以及关于运算符的这篇文章:http://robotlibrarian.billdueber.com/2011/12/solr-and-boolean-operators/.我认为我的语法应该是正确的.谁能看到我的错误?


更新:我正在使用LuceneQParser.它将上面的过滤器查询解析为

-type_id:A content:['' TO *]
Run Code Online (Sandbox Code Playgroud)

它将comments(-type_id:A OR (content:[* TO *] AND type_id:A))中建议的过滤器查询解析为

-type_id:A (+content:[* TO *] +type_id:A)
Run Code Online (Sandbox Code Playgroud)

所以没有结果.

search solr boolean filter

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

Symfony Messenger(消息队列),如何获取队列状态?

我正在使用Doctrine Transport接近Symfony 4.4 Message Queue

如何全面了解队列状态?

我注意到 Doctrine 将队列存储在表中messenger_messages,显然我可以查询该表来获取此信息,但我确信 Symfony 有一种本地方法来获取队列状态。

我想得到:

  • 队列中的消息数
  • 此时正在处理的消息数

message-queue symfony symfony4

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