mirror of
https://github.com/akvorado/akvorado.git
synced 2025-12-11 22:14:02 +01:00
console: fix use of aliased columns in dimensions
By default, `SELECT *` does not select ALIAS columns. Add the appropriate settings to modify this. Fix #541
This commit is contained in:
@@ -14,6 +14,7 @@ identified with a specific icon:
|
|||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
- 🩹 *console*: fix subnet aggregation when IPv4 or IPv6 is set to its default value
|
- 🩹 *console*: fix subnet aggregation when IPv4 or IPv6 is set to its default value
|
||||||
|
- 🩹 *console*: fix `SrcNetPrefix`, `DstNetPrefix`, `PacketSize`, and `PacketSizeBucket` dimensions
|
||||||
|
|
||||||
## 1.8.0 - 2023-02-25
|
## 1.8.0 - 2023-02-25
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ func (input graphCommonHandlerInput) sourceSelect() string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(truncated) == 0 {
|
if len(truncated) == 0 {
|
||||||
return "SELECT * FROM {{ .Table }}"
|
return "SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1"
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("SELECT * REPLACE (%s) FROM {{ .Table }}", strings.Join(truncated, ", "))
|
return fmt.Sprintf("SELECT * REPLACE (%s) FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1", strings.Join(truncated, ", "))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ func TestSourceSelect(t *testing.T) {
|
|||||||
Input: graphCommonHandlerInput{
|
Input: graphCommonHandlerInput{
|
||||||
Dimensions: []query.Column{},
|
Dimensions: []query.Column{},
|
||||||
},
|
},
|
||||||
Expected: "SELECT * FROM {{ .Table }}",
|
Expected: "SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1",
|
||||||
}, {
|
}, {
|
||||||
Description: "no truncatable dimensions",
|
Description: "no truncatable dimensions",
|
||||||
Input: graphCommonHandlerInput{
|
Input: graphCommonHandlerInput{
|
||||||
@@ -31,13 +31,13 @@ func TestSourceSelect(t *testing.T) {
|
|||||||
TruncateAddrV4: 16,
|
TruncateAddrV4: 16,
|
||||||
TruncateAddrV6: 40,
|
TruncateAddrV6: 40,
|
||||||
},
|
},
|
||||||
Expected: "SELECT * FROM {{ .Table }}",
|
Expected: "SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1",
|
||||||
}, {
|
}, {
|
||||||
Description: "no truncatation",
|
Description: "no truncatation",
|
||||||
Input: graphCommonHandlerInput{
|
Input: graphCommonHandlerInput{
|
||||||
Dimensions: []query.Column{query.NewColumn("SrcAddr")},
|
Dimensions: []query.Column{query.NewColumn("SrcAddr")},
|
||||||
},
|
},
|
||||||
Expected: "SELECT * FROM {{ .Table }}",
|
Expected: "SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1",
|
||||||
}, {
|
}, {
|
||||||
Description: "IPv4/IPv6 same prefix length",
|
Description: "IPv4/IPv6 same prefix length",
|
||||||
Input: graphCommonHandlerInput{
|
Input: graphCommonHandlerInput{
|
||||||
@@ -45,7 +45,7 @@ func TestSourceSelect(t *testing.T) {
|
|||||||
TruncateAddrV4: 16,
|
TruncateAddrV4: 16,
|
||||||
TruncateAddrV6: 112,
|
TruncateAddrV6: 112,
|
||||||
},
|
},
|
||||||
Expected: "SELECT * REPLACE (tupleElement(IPv6CIDRToRange(SrcAddr, 112), 1) AS SrcAddr) FROM {{ .Table }}",
|
Expected: "SELECT * REPLACE (tupleElement(IPv6CIDRToRange(SrcAddr, 112), 1) AS SrcAddr) FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1",
|
||||||
}, {
|
}, {
|
||||||
Description: "IPv4/IPv6 different prefix length",
|
Description: "IPv4/IPv6 different prefix length",
|
||||||
Input: graphCommonHandlerInput{
|
Input: graphCommonHandlerInput{
|
||||||
@@ -53,7 +53,7 @@ func TestSourceSelect(t *testing.T) {
|
|||||||
TruncateAddrV4: 24,
|
TruncateAddrV4: 24,
|
||||||
TruncateAddrV6: 40,
|
TruncateAddrV6: 40,
|
||||||
},
|
},
|
||||||
Expected: "SELECT * REPLACE (tupleElement(IPv6CIDRToRange(SrcAddr, if(tupleElement(IPv6CIDRToRange(SrcAddr, 96), 1) = toIPv6('::ffff:0.0.0.0'), 120, 40)), 1) AS SrcAddr) FROM {{ .Table }}",
|
Expected: "SELECT * REPLACE (tupleElement(IPv6CIDRToRange(SrcAddr, if(tupleElement(IPv6CIDRToRange(SrcAddr, 96), 1) = toIPv6('::ffff:0.0.0.0'), 120, 40)), 1) AS SrcAddr) FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, tc := range cases {
|
for _, tc := range cases {
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ func TestGraphQuerySQL(t *testing.T) {
|
|||||||
Expected: `
|
Expected: `
|
||||||
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }}
|
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }}
|
||||||
WITH
|
WITH
|
||||||
source AS (SELECT * FROM {{ .Table }})
|
source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1)
|
||||||
SELECT 1 AS axis, * FROM (
|
SELECT 1 AS axis, * FROM (
|
||||||
SELECT
|
SELECT
|
||||||
{{ call .ToStartOfInterval "TimeReceived" }} AS time,
|
{{ call .ToStartOfInterval "TimeReceived" }} AS time,
|
||||||
@@ -197,7 +197,7 @@ ORDER BY time WITH FILL
|
|||||||
Expected: `
|
Expected: `
|
||||||
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l2bps"}@@ }}
|
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l2bps"}@@ }}
|
||||||
WITH
|
WITH
|
||||||
source AS (SELECT * FROM {{ .Table }})
|
source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1)
|
||||||
SELECT 1 AS axis, * FROM (
|
SELECT 1 AS axis, * FROM (
|
||||||
SELECT
|
SELECT
|
||||||
{{ call .ToStartOfInterval "TimeReceived" }} AS time,
|
{{ call .ToStartOfInterval "TimeReceived" }} AS time,
|
||||||
@@ -228,7 +228,7 @@ ORDER BY time WITH FILL
|
|||||||
Expected: `
|
Expected: `
|
||||||
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"pps"}@@ }}
|
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"pps"}@@ }}
|
||||||
WITH
|
WITH
|
||||||
source AS (SELECT * FROM {{ .Table }})
|
source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1)
|
||||||
SELECT 1 AS axis, * FROM (
|
SELECT 1 AS axis, * FROM (
|
||||||
SELECT
|
SELECT
|
||||||
{{ call .ToStartOfInterval "TimeReceived" }} AS time,
|
{{ call .ToStartOfInterval "TimeReceived" }} AS time,
|
||||||
@@ -260,7 +260,7 @@ ORDER BY time WITH FILL
|
|||||||
Expected: `
|
Expected: `
|
||||||
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","main-table-required":true,"points":100,"units":"l3bps"}@@ }}
|
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","main-table-required":true,"points":100,"units":"l3bps"}@@ }}
|
||||||
WITH
|
WITH
|
||||||
source AS (SELECT * REPLACE (tupleElement(IPv6CIDRToRange(SrcAddr, if(tupleElement(IPv6CIDRToRange(SrcAddr, 96), 1) = toIPv6('::ffff:0.0.0.0'), 120, 48)), 1) AS SrcAddr) FROM {{ .Table }}),
|
source AS (SELECT * REPLACE (tupleElement(IPv6CIDRToRange(SrcAddr, if(tupleElement(IPv6CIDRToRange(SrcAddr, 96), 1) = toIPv6('::ffff:0.0.0.0'), 120, 48)), 1) AS SrcAddr) FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1),
|
||||||
rows AS (SELECT SrcAddr FROM source WHERE {{ .Timefilter }} AND (SrcAddr BETWEEN toIPv6('::ffff:1.0.0.0') AND toIPv6('::ffff:1.255.255.255')) GROUP BY SrcAddr ORDER BY SUM(Bytes) DESC LIMIT 0)
|
rows AS (SELECT SrcAddr FROM source WHERE {{ .Timefilter }} AND (SrcAddr BETWEEN toIPv6('::ffff:1.0.0.0') AND toIPv6('::ffff:1.255.255.255')) GROUP BY SrcAddr ORDER BY SUM(Bytes) DESC LIMIT 0)
|
||||||
SELECT 1 AS axis, * FROM (
|
SELECT 1 AS axis, * FROM (
|
||||||
SELECT
|
SELECT
|
||||||
@@ -291,7 +291,7 @@ ORDER BY time WITH FILL
|
|||||||
Expected: `
|
Expected: `
|
||||||
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }}
|
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }}
|
||||||
WITH
|
WITH
|
||||||
source AS (SELECT * FROM {{ .Table }})
|
source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1)
|
||||||
SELECT 1 AS axis, * FROM (
|
SELECT 1 AS axis, * FROM (
|
||||||
SELECT
|
SELECT
|
||||||
{{ call .ToStartOfInterval "TimeReceived" }} AS time,
|
{{ call .ToStartOfInterval "TimeReceived" }} AS time,
|
||||||
@@ -321,7 +321,7 @@ ORDER BY time WITH FILL
|
|||||||
Expected: `
|
Expected: `
|
||||||
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }}
|
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }}
|
||||||
WITH
|
WITH
|
||||||
source AS (SELECT * FROM {{ .Table }})
|
source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1)
|
||||||
SELECT 1 AS axis, * FROM (
|
SELECT 1 AS axis, * FROM (
|
||||||
SELECT
|
SELECT
|
||||||
{{ call .ToStartOfInterval "TimeReceived" }} AS time,
|
{{ call .ToStartOfInterval "TimeReceived" }} AS time,
|
||||||
@@ -352,7 +352,7 @@ ORDER BY time WITH FILL
|
|||||||
Expected: `
|
Expected: `
|
||||||
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }}
|
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }}
|
||||||
WITH
|
WITH
|
||||||
source AS (SELECT * FROM {{ .Table }})
|
source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1)
|
||||||
SELECT 1 AS axis, * FROM (
|
SELECT 1 AS axis, * FROM (
|
||||||
SELECT
|
SELECT
|
||||||
{{ call .ToStartOfInterval "TimeReceived" }} AS time,
|
{{ call .ToStartOfInterval "TimeReceived" }} AS time,
|
||||||
@@ -399,7 +399,7 @@ ORDER BY time WITH FILL
|
|||||||
Expected: `
|
Expected: `
|
||||||
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"inl2%"}@@ }}
|
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"inl2%"}@@ }}
|
||||||
WITH
|
WITH
|
||||||
source AS (SELECT * FROM {{ .Table }})
|
source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1)
|
||||||
SELECT 1 AS axis, * FROM (
|
SELECT 1 AS axis, * FROM (
|
||||||
SELECT
|
SELECT
|
||||||
{{ call .ToStartOfInterval "TimeReceived" }} AS time,
|
{{ call .ToStartOfInterval "TimeReceived" }} AS time,
|
||||||
@@ -449,7 +449,7 @@ ORDER BY time WITH FILL
|
|||||||
Expected: `
|
Expected: `
|
||||||
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }}
|
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }}
|
||||||
WITH
|
WITH
|
||||||
source AS (SELECT * FROM {{ .Table }}),
|
source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1),
|
||||||
rows AS (SELECT ExporterName, InIfProvider FROM source WHERE {{ .Timefilter }} GROUP BY ExporterName, InIfProvider ORDER BY SUM(Bytes) DESC LIMIT 20)
|
rows AS (SELECT ExporterName, InIfProvider FROM source WHERE {{ .Timefilter }} GROUP BY ExporterName, InIfProvider ORDER BY SUM(Bytes) DESC LIMIT 20)
|
||||||
SELECT 1 AS axis, * FROM (
|
SELECT 1 AS axis, * FROM (
|
||||||
SELECT
|
SELECT
|
||||||
@@ -485,7 +485,7 @@ ORDER BY time WITH FILL
|
|||||||
Expected: `
|
Expected: `
|
||||||
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }}
|
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }}
|
||||||
WITH
|
WITH
|
||||||
source AS (SELECT * FROM {{ .Table }}),
|
source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1),
|
||||||
rows AS (SELECT ExporterName, InIfProvider FROM source WHERE {{ .Timefilter }} GROUP BY ExporterName, InIfProvider ORDER BY SUM(Bytes) DESC LIMIT 20)
|
rows AS (SELECT ExporterName, InIfProvider FROM source WHERE {{ .Timefilter }} GROUP BY ExporterName, InIfProvider ORDER BY SUM(Bytes) DESC LIMIT 20)
|
||||||
SELECT 1 AS axis, * FROM (
|
SELECT 1 AS axis, * FROM (
|
||||||
SELECT
|
SELECT
|
||||||
@@ -537,7 +537,7 @@ ORDER BY time WITH FILL
|
|||||||
Expected: `
|
Expected: `
|
||||||
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }}
|
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":100,"units":"l3bps"}@@ }}
|
||||||
WITH
|
WITH
|
||||||
source AS (SELECT * FROM {{ .Table }}),
|
source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1),
|
||||||
rows AS (SELECT ExporterName, InIfProvider FROM source WHERE {{ .Timefilter }} GROUP BY ExporterName, InIfProvider ORDER BY SUM(Bytes) DESC LIMIT 20)
|
rows AS (SELECT ExporterName, InIfProvider FROM source WHERE {{ .Timefilter }} GROUP BY ExporterName, InIfProvider ORDER BY SUM(Bytes) DESC LIMIT 20)
|
||||||
SELECT 1 AS axis, * FROM (
|
SELECT 1 AS axis, * FROM (
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ func TestRequireMainTable(t *testing.T) {
|
|||||||
{[]query.Column{query.NewColumn("DstAddr")}, query.NewFilter(""), true},
|
{[]query.Column{query.NewColumn("DstAddr")}, query.NewFilter(""), true},
|
||||||
{[]query.Column{query.NewColumn("SrcAS"), query.NewColumn("DstAddr")}, query.NewFilter(""), true},
|
{[]query.Column{query.NewColumn("SrcAS"), query.NewColumn("DstAddr")}, query.NewFilter(""), true},
|
||||||
{[]query.Column{query.NewColumn("DstAddr"), query.NewColumn("SrcAS")}, query.NewFilter(""), true},
|
{[]query.Column{query.NewColumn("DstAddr"), query.NewColumn("SrcAS")}, query.NewFilter(""), true},
|
||||||
|
{[]query.Column{query.NewColumn("DstNetPrefix")}, query.NewFilter(""), true},
|
||||||
{[]query.Column{}, query.NewFilter("SrcAddr = 203.0.113.15"), true},
|
{[]query.Column{}, query.NewFilter("SrcAddr = 203.0.113.15"), true},
|
||||||
}
|
}
|
||||||
sch := schema.NewMock(t)
|
sch := schema.NewMock(t)
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ func TestSankeyQuerySQL(t *testing.T) {
|
|||||||
Expected: `
|
Expected: `
|
||||||
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":20,"units":"l3bps"}@@ }}
|
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":20,"units":"l3bps"}@@ }}
|
||||||
WITH
|
WITH
|
||||||
source AS (SELECT * FROM {{ .Table }}),
|
source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1),
|
||||||
(SELECT MAX(TimeReceived) - MIN(TimeReceived) FROM source WHERE {{ .Timefilter }}) AS range,
|
(SELECT MAX(TimeReceived) - MIN(TimeReceived) FROM source WHERE {{ .Timefilter }}) AS range,
|
||||||
rows AS (SELECT SrcAS, ExporterName FROM source WHERE {{ .Timefilter }} GROUP BY SrcAS, ExporterName ORDER BY SUM(Bytes) DESC LIMIT 5)
|
rows AS (SELECT SrcAS, ExporterName FROM source WHERE {{ .Timefilter }} GROUP BY SrcAS, ExporterName ORDER BY SUM(Bytes) DESC LIMIT 5)
|
||||||
SELECT
|
SELECT
|
||||||
@@ -70,7 +70,7 @@ ORDER BY xps DESC
|
|||||||
Expected: `
|
Expected: `
|
||||||
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":20,"units":"l2bps"}@@ }}
|
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":20,"units":"l2bps"}@@ }}
|
||||||
WITH
|
WITH
|
||||||
source AS (SELECT * FROM {{ .Table }}),
|
source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1),
|
||||||
(SELECT MAX(TimeReceived) - MIN(TimeReceived) FROM source WHERE {{ .Timefilter }}) AS range,
|
(SELECT MAX(TimeReceived) - MIN(TimeReceived) FROM source WHERE {{ .Timefilter }}) AS range,
|
||||||
rows AS (SELECT SrcAS, ExporterName FROM source WHERE {{ .Timefilter }} GROUP BY SrcAS, ExporterName ORDER BY SUM(Bytes) DESC LIMIT 5)
|
rows AS (SELECT SrcAS, ExporterName FROM source WHERE {{ .Timefilter }} GROUP BY SrcAS, ExporterName ORDER BY SUM(Bytes) DESC LIMIT 5)
|
||||||
SELECT
|
SELECT
|
||||||
@@ -101,7 +101,7 @@ ORDER BY xps DESC
|
|||||||
Expected: `
|
Expected: `
|
||||||
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":20,"units":"pps"}@@ }}
|
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":20,"units":"pps"}@@ }}
|
||||||
WITH
|
WITH
|
||||||
source AS (SELECT * FROM {{ .Table }}),
|
source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1),
|
||||||
(SELECT MAX(TimeReceived) - MIN(TimeReceived) FROM source WHERE {{ .Timefilter }}) AS range,
|
(SELECT MAX(TimeReceived) - MIN(TimeReceived) FROM source WHERE {{ .Timefilter }}) AS range,
|
||||||
rows AS (SELECT SrcAS, ExporterName FROM source WHERE {{ .Timefilter }} GROUP BY SrcAS, ExporterName ORDER BY SUM(Bytes) DESC LIMIT 5)
|
rows AS (SELECT SrcAS, ExporterName FROM source WHERE {{ .Timefilter }} GROUP BY SrcAS, ExporterName ORDER BY SUM(Bytes) DESC LIMIT 5)
|
||||||
SELECT
|
SELECT
|
||||||
@@ -131,7 +131,7 @@ ORDER BY xps DESC
|
|||||||
Expected: `
|
Expected: `
|
||||||
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":20,"units":"l3bps"}@@ }}
|
{{ with context @@{"start":"2022-04-10T15:45:10Z","end":"2022-04-11T15:45:10Z","points":20,"units":"l3bps"}@@ }}
|
||||||
WITH
|
WITH
|
||||||
source AS (SELECT * FROM {{ .Table }}),
|
source AS (SELECT * FROM {{ .Table }} SETTINGS asterisk_include_alias_columns = 1),
|
||||||
(SELECT MAX(TimeReceived) - MIN(TimeReceived) FROM source WHERE {{ .Timefilter }} AND (DstCountry = 'FR')) AS range,
|
(SELECT MAX(TimeReceived) - MIN(TimeReceived) FROM source WHERE {{ .Timefilter }} AND (DstCountry = 'FR')) AS range,
|
||||||
rows AS (SELECT SrcAS, ExporterName FROM source WHERE {{ .Timefilter }} AND (DstCountry = 'FR') GROUP BY SrcAS, ExporterName ORDER BY SUM(Bytes) DESC LIMIT 10)
|
rows AS (SELECT SrcAS, ExporterName FROM source WHERE {{ .Timefilter }} AND (DstCountry = 'FR') GROUP BY SrcAS, ExporterName ORDER BY SUM(Bytes) DESC LIMIT 10)
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
Reference in New Issue
Block a user