Kusto查询:如何按列进行汇总,然后检查组中是否有某些记录

时间:2020-04-26 23:32:35

标签: azure-log-analytics kusto kql

我对Kusto还是很陌生,需要在Log Analytics中查询某些记录。

问题:需要按列ActivityId进行汇总,然后检查RunbookNames(另一个列名)列表是否在该组内。我想要所有具有Foo AND Bar的Activityid。如果两者都不包含,则不符合条件。

类似于SQL查询,我们有GROUP BY然后是HAVING子句。

有什么主意吗?

样本数据

| ActivityId | RunbookName         | Result            |
|------------|---------------------|-------------------|
| 5271D9E9   | Foo                 | State 2, Status 1 |
| 5271D9E9   | Foo                 | State 2, Status 1 |
| 5271D9E9   | Bar                 | State 2, Status 3 |
| 394B044    | Fooey               | State 2, Status 1 |
| 394B044    | Dooey               | State 2, Status 1 |
| D94321B    | Dooey               | State 2, Status 1 |
| 9E4371A    | Foo                 | State 2, Status 1 |
...

**Expected Results**:
| ActivityId | RunbookName         | Result            |
|------------|---------------------|-------------------|
| 5271D9E9   | Foo                 | State 2, Status 1 |
| 5271D9E9   | Foo                 | State 2, Status 1 |
| 5271D9E9   | Bar                 | State 2, Status 3 |

1 个答案:

答案 0 :(得分:1)

根据给定的输入和输出以及您在注释中的说明,以下查询可以为您提供指导。

import sys

from PyQt5 import QtCore, QtWidgets


class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)

        self.dateedit = QtWidgets.QDateEdit(calendarPopup=True)
        self.menuBar().setCornerWidget(self.dateedit, QtCore.Qt.TopLeftCorner)
        self.dateedit.setDateTime(QtCore.QDateTime.currentDateTime())


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())