【问题标题】:GROUP BY like #ask query in semantic-mediawikiGROUP BY like #ask query in semantic-mediawiki
【发布时间】:2020-04-08 08:16:47
【问题描述】:

我正在使用语义媒体维基来存储不同的日记,即与工作相关的、私人的东西等,在这些子对象中:

{{#subobject:
 |Has date = 2020-04-08
 |Has log = work-log
 |has agenda = 
* Work related task done
}}

{{#subobject:
 |Has date = 2020-04-08
 |Has log = private-log
 |has agenda = 
* Something very interesting happened today
}}

{{#subobject:
 |Has date = 2020-04-07
 |Has log = private-log
 |has agenda = 
* Today nothing happened
}}

所有这些信息都可以通过这样的#ask 查询来查询,汇总所有日志类型的所有条目:

{{#ask:
 [[Has log::+]]
 |?Has date =Date
 |?Has agenda =Agenda
 |format=broadtable
 |sort=Has date
 |order=desc
 |mainlabel=-
}}

当这样做时,在结果表中,我得到每个条目一行,因此将同一天发生的活动的条目分开,如下所示:

Date        Agenda
--------------------------------------------------------
2020-04-08  * Work related task done
--------------------------------------------------------
2020-04-08  * Something very interesting happened today
--------------------------------------------------------
2020-04-07  * Today nothing happened

是否可以按输出中的日期对这些结果进行分组,类似于 SQL GROUP BY 语句,以便我得到类似的结果?:

Date        Agenda
--------------------------------------------------------
2020-04-08  * Work related task done
            * Something very interesting happened today
--------------------------------------------------------
2020-04-07  * Today nothing happened

谢谢!

【问题讨论】:

    标签: mediawiki mediawiki-extensions semantic-mediawiki


    【解决方案1】:

    在 SMW 中不能使用 group by 子句,但通过使用模板格式的结果,您可以实现您想要获得的外观。

    【讨论】:

    • 谢谢。我也在考虑同一个方向,并且非常希望。但是,在考虑实现分组的方法时,我总是遇到同样的分组问题。有谁知道如何编写这样的模板?
    • 您可以将 SMW 与 Extension:Variables 结合使用,以了解下一行日期是否与最后一行日期相同,并且只有当它不同时,您才能在表中开始新行。如果您从 SMW 获取按日期排序的数据点,那就可以了。
    • 我强烈建议您将 arrays 扩展名与 SMW 结合使用。这可以通过这种方式轻松实现。
    猜你喜欢
    • 2022-12-26
    • 2020-02-08
    • 1970-01-01
    • 2016-09-28
    • 2015-02-17
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    相关资源
    最近更新 更多