微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我想根据我的两个表获得数据透视结果

如何解决我想根据我的两个表获得数据透视结果

示例数据:

表:user_field_mapping

user_id field_id field_value
1 11
1 12 b
1 13 c
2 11 x
2 12 y

表:field_master

field_id field_name
11 fieldnamefor11
12 fieldnamefor12
13 fieldnamefor13

必填结果

user_id fieldnamefor11 fieldnamefor12 fieldnamefor13
1 b c
2 x y

这是我试过的...

SELECT d.user_id,d.value "fieldnamefor11" 
  FROM user_field_mapping d 
  LEFT 
  JOIN field_master f1 
    ON f1.fieldid=d.field_id 
   AND f1.name = 'fieldnamefor11' 
  LEFT 
  JOIN field_master f2 
    ON f2.id=d.field_id 
   AND f2.name = 'fieldnamefor12' 
 order 
    by user_id,field_id 

解决方法

SELECT UFM.user_id,MAX(CASE WHEN UFM.field_id = 11 THEN UFM.field_value end) as fieldnamefor11,MAX(CASE WHEN UFM.field_id = 12 THEN UFM.field_value end) as fieldnamefor12,MAX(CASE WHEN UFM.field_id = 13 THEN UFM.field_value end ) as fieldnamefor13
  FROM user_field_mapping  UFM inner join
       field_master  FM ON UFM.field_id = FM.field_id
  Group by UFM.user_id

和结果;

enter image description here

,

您可以使用条件聚合来实现所需的结果 -

import requests
from bs4 import BeautifulSoup
import pandas as pd

for i in range(1,3): 
    url = "https://www.gittigidiyor.com/samsung-cep-telefonu?sf=" + str(i)
    r = requests.get(url) 
    source = BeautifulSoup(r.content,"lxml")
    liste = source.find_all('div',attrs={"class":"gg-w-24 gg-d-24 gg-t-24 gg-m-24 root-column padding-none"}) 
    for url in liste:
        all_hrefs = url.find_all('a',href=True)
        for href in all_hrefs:
            url_phone = "https:" + href['href']
            print(url_phone)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。