尝试按术语/语言获取分类计数,包括 0 个计数

Posted

技术标签:

【中文标题】尝试按术语/语言获取分类计数,包括 0 个计数【英文标题】:Trying to get Taxonomy counts by term/language, including 0 counts 【发布时间】:2014-05-28 15:40:27 【问题描述】:

在多语言 Drupal 站点上,我正在尝试创建一个视图,其中列出了特定分类法的所有术语,并包括与该术语相关联的节点数,按语言细分。在大多数情况下,它可以工作,除非我有一个术语的内容是一种语言,但没有另一种语言,它不能以该语言正确显示。

样本数据: 分类:教育、美食、旅游 语言:英语、韩语

节点:

Name | Taxonomy | language
Education Test E | Education | en
Education Test E2 | Education | en
Education Test K | Education | ko
Food Test E | Food | en

期望的结果:

Taxonomy | Language | Count
Education | en | 2
Education | ko | 1
Food | en | 0
Food | ko | 1
Travel | en | 0
Travel | ko | 0

我得到了什么:

Taxonomy | Language | Count
Education | en | 2
Education | ko | 1
Food | ko | 1
Travel | en | 0
Travel | ko | 0

在 SQL 中,我找到了我需要的查询:

SELECT l.language, td.name, COUNT(n.nid) AS Questions
FROM languages l
CROSS JOIN taxonomy_term_data td
LEFT OUTER JOIN field_data_field_qa_topic qat ON td.tid=qat.field_qa_topic_tid AND qat.deleted= '0'
LEFT JOIN node n ON qat.entity_id = n.nid AND n.language=l.language
WHERE td.vid=9
GROUP BY l.language, td.name
ORDER BY td.weight, td.name, l.language;

但我不知道如何让它在 Views 中工作。 (是的,我安装了 Views Cross Join 模块。)

另一种选择 - 我已在 mysql 中将此查询创建为视图,但不知道如何在 Drupal 视图中公开 SQL 视图。

此时任何一种方法(创建 Drupal 视图或向 Drupal 公开 SQL 视图)都可以——我只是想让它工作。谢谢!

编辑:只是为了澄清我想要实现的目标,我想要这个特定分类的所有术语列表(以便用户获得指向相应页面的链接)以及每个术语的现有内容页面的计数(包括那些有 0 的)。我希望只对当前用户的语言进行过滤,但我也可以将它与所有语言一起使用并在代码中过滤掉。

【问题讨论】:

【参考方案1】:

对不起,如果我误解了你,但如果你想要达到的目的是获取当前用户使用正确的语言或网站当前使用的语言的计数,那么你必须添加过滤条件 - 内容:语言并选择用户或网站语言。

或者你想获取所有语言/内容列表的数据表?

【讨论】:

所有 - 请查看问题中的期望结果。我已经走这条路了——只要我为该语言添加一个过滤器,它就会过滤掉所有的 0 计数。

以上是关于尝试按术语/语言获取分类计数,包括 0 个计数的主要内容,如果未能解决你的问题,请参考以下文章

R语言计算dataframe数据列中各分类的计数(类似pandas value_counts函数功能)

R语言nrow函数获取dataframe或者matrix行计数统计

用C语言的科学计数法形式写出下面这些数。1300,123.45,0.00426

选择按month.year分组的两个日期之间的用户计数,并且对于count = 0的月份包括零

R语言ggplot2可视化:可视化离散(分类)变量的堆叠的柱状图横轴是离散变量柱状图是多个分组的计数和叠加

使用 pandas 在数据帧上执行 groupby,按计数排序并获取 python 中的前 2 个计数