我试图通过以下查询从雅典娜检索数据:
SELECT DISTINCT cop.shop_id,
cop.product_id,
avg(cop.position) AS avg_position,
cp.kes
FROM data_1 AS cop
JOIN data_2 AS cp
ON cop.product_id = cp.product_id
WHERE cop.site_id = 1
AND cop.product_id IS NOT NULL
GROUP BY cop.shop_id, cop.product_id, cp.kes
但是,数据中有四列:产品id、商店id、平均位置、kes。
有些行中同时包含na和非na kes
列。我只想用以下条件操作数据:
如果 product_id
, shop_id
,和 avg_position
是一样的,如果有na和非na在 kes
列中,只需保留非na行,并删除包含na的行 kes
.
但是,如果 kes
,不要删除它。
我该怎么做?
1条答案
按热度按时间py49o6xq1#
我想你想继续
kes
:聚合函数忽略
null
价值观;所以呢MAX(cp.kes)
给你最高的-null
的价值cp.kes
. 另一方面,如果cp.kes
是null
在集团内部,max()
给予null
.旁注:
DISTINCT
以及GROUP BY
在一起没有意义(尽管这仍然是有效的sql);GROUP BY
保证在SELECT
列表已存在。