使用汇总对“视图”中的结果计数[关闭]


Answers:


42

是的,可以在视图3中直接使用。
这个想法与SQL聚合中的想法相同。让我们来看一个例子:

  1. 编辑您的视图并启用视图聚合:
    启用视图聚合

  2. 删除默认的排序条件。

  3. 添加字段“内容:类型”和“内容:否”: 在此处输入图片说明
    为内容:否选择COUNT函数: 在此处输入图片说明

要查看发生了什么,只需在全局视图设置页面上打开“显示SQL查询”复选框即可。

SELECT node.type AS node_type, COUNT(node.nid) AS nid
FROM 
{node} node
WHERE (( (node.status = '1') ))
GROUP BY node_type
LIMIT 10 OFFSET 0

因此,我们将节点按node_type分组并计算该组的计数。


1
我被困了几个小时,然后在阅读了您的帖子后,我意识到我在这里进行了默认排序。感谢@kalabro
saadlulu 2012年

2
那么如何使计数可用-它是一个标记变量,如何显示?
therobyouknow 2013年

您的答复当然是正确的。但是,在将“关系与实体引用和聚合”一起使用时,我陷入了困境。如果您构建一个块,它会很好,但是如果您创建一个Page,它就不会。奇怪的东西。
Urb Gim Tam 2015年

10

伟大的答案在这里,虽然你原来的问题没有规定你要什么与计数值。想必您要显示它吗?

如果是这样,这是另一个解决方案:

假设您的视图已设置为按内容类型的项目进行过滤,则还可以在视图中添加标题,然后选择“全局:结果摘要”选项,并使用文本区域中提供的标记变量。


要澄清的是,这扩展了kalabro提供的出色解决方案,以显示计数。
therobyouknow

-2

以防万一有人碰到这个。

我使用了Views Date Format SQL日期格式化为粒度。

视图日期格式SQL模块允许使用SQL格式化日期字段。这样可以使用选定的粒度对日期字段进行组聚合。

核心功能是从render()中删除日期格式并将其放入query()中。即使用SQL的DATE_FORMAT而不是PHP的format_date格式化日期值。

这是通过为节点“创建”和“更改”日期字段分配新的默认处理程序来实现的。该处理程序扩展并覆盖views_handler_field_date中视图的构建。

开箱即用-就像!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.