php 某字段分组统计,一次对多个字段进行分组和统计(Group and count multiple fields at once)...

一次对多个字段进行分组和统计(Group and count multiple fields at once)

是否可以合并这些查询以便搜索条件只执行一次?

SELECT category, count(*)

FROM ads

WHERE [search criteria]

GROUP BY category

SELECT state, count(*)

FROM ads

WHERE [search criteria]

GROUP BY state

SELECT price_range, count(*)

FROM ads

WHERE [search criteria]

GROUP BY price_range

...

Plus about 10 more COUNTS

我的目标是创建一个类似于本网站中使用的过滤器。

我正在考虑使用某种搜索引擎(例如Lucene)而不是关系数据库。 新的想法是受欢迎的。

Is it possible to merge these queries so the search criteria is executed only once?

SELECT category, count(*)

FROM ads

WHERE [search criteria]

GROUP BY category

SELECT state, count(*)

FROM ads

WHERE [search criteria]

GROUP BY state

SELECT price_range, count(*)

FROM ads

WHERE [search criteria]

GROUP BY price_range

...

Plus about 10 more COUNTS

My aim is to create a filter similar to that is used in this website.

I'm thinking about using some kind of search engine (eg. Lucene) instead of relational database. New ideas are welcome.

原文:https://stackoverflow.com/questions/6169769

2019-12-11 23:07

满意答案

Eduardo,你允许使用存储过程吗? 如果是这样,您可以先执行通用部分。

SELECT ...

FROM ads WHERE [search criteria]

然后,您可以在较小的表格上执行多个查询。 您还可以存储结果并将整个事件作为一个包含三列的表格返回:

类型(类别,状态,价格范围等)

名称(实际类别/状态/等值)

计数

Eduardo, Are you allowed to use a stored procedure? If so, you can execute the common part first.

SELECT ...

FROM ads WHERE [search criteria]

Then you can do your multiple queries on the smaller table. You can also store the results and return the whole thing as one table with three columns:

type (category, state, price range, etc)

name (actually category/state/etc value)

count

2011-05-29

相关问答

你想按匿名类型分组,这是VB.NET中的语法(注意Key ): Dim groups =

From j In MyTable

Group By x = New With {Key .var1 = j.var1, Key .var2 = j.var2, Key .var3 = j.var3} Into g = Group

Select New With {

.var1 = x.var1,

.var2 = x.var2,

.va...

您可以按匿名对象进行分组,然后投影每个组以选择所需的属性: var result = persons

.GroupBy(p => new { p.FirstName, p.LastName })

.Select(g => new

{

FirstName = g.Key.FirstName,

LastName = g.Key.LastName,

AgeCount = g.Count()

});

You can gro...

在查询表达式中使用的点符号中使用相同的匿名类型: var qry = cust.GroupBy(cm => new { cm.Customer, cm.OrderDate },

(key, group) => new { Key1 = key.Customer, Key2 = key.OrderDate,

Count = group.Count() });

(在一个真正的IDE中,我将(key, ...

Eduardo,你允许使用存储过程吗? 如果是这样,您可以先执行通用部分。 SELECT ...

FROM ads WHERE [search criteria]

然后,您可以在较小的表格上执行多个查询。 您还可以存储结果并将整个事件作为一个包含三列的表格返回: 类型(类别,状态,价格范围等) 名称(实际类别/状态/等值) 计数 Eduardo, Are you allowed to use a stored procedure? If so, you can execute the c...

使用$ data变量,您可以: $d = array();

foreach ($data as $value) {

$week = $value['Test']['week'];

if (isset($d[$week])) {

$d[$week][$value['Test']['devicetype']] = $value[0]['countDevice'];

} else {

$d[$week] = array($value['Test']...

db.collection.aggregate([

{

$group : {

_id : {

date : "$createdAt",

state : "$state"

},

count : {$sum : 1}

}

},

{

$group : {

_id : "$_id.date",

states : {

$addToSe...

您可以使用不太好的相关子查询(在子查询上)获得所需的结果。 我不知道如何使用大量数据进行扩展: SELECT

-- the desired columns

client_mac,

drone_id,

antenna_signal,

amount -- I added this so I could easily check the result

FROM (

-- give me the count of every va...

似乎我在想正确的方法。 我很困惑因为我想用 _repository.GetVehicleLookupLogs()

代替: _repository.GetPostcodeLookupLogs()

两个表都有相同的列,所以我得到了一些结果,但不是我预期的那些 Seems I was thinking the correct way. I got confused because I wanted to use _repository.GetVehicleLookupLogs()

instea...

您最有可能只是检索记录(如果集合很大,则以块为单位)并自己进行聚合。 无论如何,MongoDB完全检索每个文档。 由于您在查询中使用了每个文档的相当大部分,因此最好自己进行聚合。 也就是说,如果你仍然希望Mongoose这样做,请使用像这样的聚合器函数。 糟糕的方法是为您需要的每个查询调用此方法,按字段名称和“Y / N”值分组 - 为您要查询的每个字段。 更好的方法是使用Model.mapReduce执行reduce操作。 这样,您就可以对每个文档进行更多种类的查询。 You will most...

实现根据不同领域比较人的方法。 例如,如果要按年龄分组,请将此方法添加到Person : public static Comparator getAgeComparator(){

return new Comparator() {

@Override

public int compare(Person o1, Person o2) {

return o1.age-o2.age;

}

...

相关文章

最近在测试hive导入solr,github上有个相关的代码 https://github.com/c

...

之前一直没搞清楚Fields的作用,今天再看一个例子的时候突然脑洞大开,想通了!看得例子如下。 Tra

...

本章主题: 记录一个小小的Tips 1 Storm在Emit publicclassValuesext

...

1. 背景 多核,官方说法,让你只用一个Solr实例,实现多配置多索引的功能,为不同的应用保留不同的

...

例如 :学生 与课程之间是多对多关联,中间表不仅有学生表和课程表的主键,中间表还有其他字段(成绩等),

...

就像上一篇文章(http://www.linuxidc.com/Linux/2012-10/72857

...

前两天在Mac OS 10.8.1上搭建了Hadoop伪分布式系统,见 http://www.linu

...

http://wiki.apache.org/solr/FieldCollapsing solr分组排

...

solr的分组和统计功能 http://localhost:8983/solr/select?q=

...

select a,b ,sum(e) from test group by a,b order by

...

最新问答

如果启用了复制处理程序,请确保将其置于其中一个安全角色之后。 我见过人们做的另一件事是在不同的端口上运行admin。 最好在需要auth的页面上使用SSL,这样你就不会发送明确的密码,因此管理和复制将发生在8443上,而常规查询将在8080上发生。 如果您要签署自己的证书,请查看此有用的SO页面: 如何在特定连接上使用不同的证书? I didn't know that /admin was the context for SOLR admin because /admin does not re

第一:在您的样本中,您有: 但是你在询问 //td[@class=‘CarMiniProfile-TableHeader’] (注意TableHeader中的大写'T')。 xpath区分大小写。 第二:通过查询// td [@ class ='CarMiniProfile-TableHeader'] / td,你暗示你在外部td中有一个'td'元素,而它们是兄弟姐妹。 有很多方法可以在这里获得制作和模型

这是你的答案: http://jsfiddle.net/gPsdk/40/ .preloader-container { position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px; background: #FFFFFF; z-index: 5; opacity: 1; -webkit-transition: all 500ms ease-out;

问题是,在启用Outlook库引用的情况下, olMailItem是一个保留常量,我认为当您将Dim olMailItem as Outlook.MailItem ,这不是问题,但是尝试设置变量会导致问题。 以下是完整的解释: 您已将olMailItem声明为对象变量。 在赋值语句的右侧,在将其值设置为对象的实例之前,您将引用此Object 。 这基本上是一个递归错误,因为你有对象试图自己分配自己。 还有另一个潜在的错误,如果之前已经分配了olMailItem ,这个语句会引发另一个错误(可能是

我建议使用wireshark http://www.wireshark.org/通过记录(“捕获”)设备可以看到的网络流量副本来“监听”网络上发生的对话。 当您开始捕获时,数据量似乎过大,但如果您能够发现任何看起来像您的SOAP消息的片段(应该很容易发现),那么您可以通过右键单击并选择来快速过滤到该对话'关注TCP Stream'。 然后,您可以在弹出窗口中查看您编写的SOAP服务与Silverlight客户端之间的整个对话。 如果一切正常,请关闭弹出窗口。 作为一个额外的好处,wireshar

Android默认情况下不提供TextView的合理结果。 您可以使用以下库并实现适当的aligntment。 https://github.com/navabi/JustifiedTextView Android Does not provide Justified aligntment of TextView By default. You can use following library and achieve proper aligntment. https://github.com/

你的代码适合我: class apples { public static void main(String args[]) { System.out.println("Hello World!"); } } 我将它下载到c:\ temp \ apples.java。 以下是我编译和运行的方式: C:\temp>javac -cp . apples.java C:\temp>dir apples Volume in drive C is HP_PAV

12个十六进制数字(带前导0x)表示48位。 那是256 TB的虚拟地址空间。 在AMD64上阅读wiki(我假设你在上面,对吗?)架构http://en.wikipedia.org/wiki/X86-64 12 hex digits (with leading 0x) mean 48 bits. That is 256 TB of virtual address space. Read wiki on AMD64 (I assume that you are on it, right?) ar

这将取决于你想要的。 对象有两种属性:类属性和实例属性。 类属性 类属性对于类的每个实例都是相同的对象。 class MyClass: class_attribute = [] 这里已经为类定义了MyClass.class_attribute ,您可以使用它。 如果您创建MyClass实例,则每个实例都可以访问相同的class_attribute 。 实例属性 instance属性仅在创建实例时可用,并且对于类的每个实例都是唯一的。 您只能在实例上使用它们。 在方法__init__中定

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值