Google bigquery 要知道哪个时段有很多记录
我有如下表格。Google bigquery 要知道哪个时段有很多记录,google-bigquery,Google Bigquery,我有如下表格。 时间段的条件为0到6、7到12、13到18 是否有任何单个查询来获取此输出 sellingMaterial sellingTime SAMSUNG 2 SAMSUNG 4 SAMSUNG 3 NOKIA 5 NOKIA 13 NOKIA 10 APPLE 12 APPLE
时间段的条件为0到6、7到12、13到18
是否有任何单个查询来获取此输出
sellingMaterial sellingTime SAMSUNG 2 SAMSUNG 4 SAMSUNG 3 NOKIA 5 NOKIA 13 NOKIA 10 APPLE 12 APPLE 7 APPLE 15 Expected output is Time Period sellingMaterial 0 to 6 SAMSUNG 销售材料销售时间 三星2 三星4 三星3 诺基亚5 诺基亚13 诺基亚10 苹果12 苹果7 苹果15 预期产量为 时间段销售材料
0到6三星以下是BigQuery标准SQL
#standardSQL
SELECT start, finish,
STRING_AGG(
CONCAT(sellingMaterial, ':', CAST(volume AS STRING))
ORDER BY volume DESC, sellingMaterial
) sellingMaterial
FROM (
SELECT start, finish, sellingMaterial, COUNT(1) volume
FROM `project.dataset.conditions` c
JOIN `project.dataset.table` t
ON sellingTime BETWEEN start AND finish
GROUP BY start, finish, sellingMaterial
)
GROUP BY start, finish
您可以使用问题中的样本数据测试、播放上述内容,如下例所示
#standardSQL
WITH `project.dataset.table` AS (
SELECT 'SAMSUNG' sellingMaterial, 2 sellingTime UNION ALL
SELECT 'SAMSUNG', 4 UNION ALL
SELECT 'SAMSUNG', 3 UNION ALL
SELECT 'NOKIA', 5 UNION ALL
SELECT 'NOKIA', 13 UNION ALL
SELECT 'NOKIA', 10 UNION ALL
SELECT 'APPLE', 12 UNION ALL
SELECT 'APPLE', 7 UNION ALL
SELECT 'APPLE', 15
), `project.dataset.conditions` AS (
SELECT 0 start, 6 finish UNION ALL
SELECT 7, 12 UNION ALL
SELECT 13, 18
)
SELECT start, finish,
STRING_AGG(
CONCAT(sellingMaterial, ':', CAST(volume AS STRING))
ORDER BY volume DESC, sellingMaterial
) sellingMaterial
FROM (
SELECT start, finish, sellingMaterial, COUNT(1) volume
FROM `project.dataset.conditions` c
JOIN `project.dataset.table` t
ON sellingTime BETWEEN start AND finish
GROUP BY start, finish, sellingMaterial
)
GROUP BY start, finish
-- ORDER BY start
结果
Row start finish sellingMaterial
1 0 6 SAMSUNG:3,NOKIA:1
2 7 12 APPLE:2,NOKIA:1
3 13 18 APPLE:1,NOKIA:1
我想知道哪个时间有最多的唱片[销售资料]
结果
Row start finish sellingMaterial
1 0 6 SAMSUNG
当然可以。但是你自己试过什么吗?请先显示您的努力:o)否则您有很好的机会,因为我在BigQuery中尝试了以下查询。通过sellingTime在0和6之间、sellingTime在7和12之间、sellingTime在13和18之间选择sellingTime、sellingMaterial FROM kali.material group,但我得到以下错误。(L4:15):分组中([sellingTime],0,6)之间的表达式无效,请参见我的答案。同时,请将您尝试的查询信息和错误一起移动到问题本身中,您可以使用问题下方的编辑链接来完成!我想知道什么时候有很多记录。上面的查询显示所有记录。按多-你是指大多数?从你的问题上看,这并不清楚——我是说,你的眼睛是最清楚的
Row start finish sellingMaterial
1 0 6 SAMSUNG