mysql有张表,字段分别为A,B,C,现在写SQL语句 当A大与B时选A,负责选A;当B大与C时选C,负责选B;
时间: 2023-06-09 17:03:00 浏览: 176
您可以使用以下SQL语句来实现该需求:
```
SELECT CASE WHEN A > B THEN A ELSE B END AS 'Result'
FROM your_table
WHERE B > C;
```
这个查询首先使用CASE语句来确定应该使用A还是B,这取决于A和B之间的大小关系。接着,WHERE子句将结果限制为仅包含B大于C的行,以便根据C和B之间的大小关系选择结果。
相关问题
mysql中一张表字段类型为时间戳(年月日时分秒)格式,如果想要通过该字段进行分组,查看近10天的数据量情况,该如何写sql
可以使用MySQL中的FROM_UNIXTIME()函数将时间戳转换为日期时间格式,然后使用DATE()函数将日期时间格式的数据转换为日期格式,最后使用GROUP BY子句进行分组统计。具体的SQL语句如下所示:
```
SELECT DATE(FROM_UNIXTIME(timestamp_column)) AS date, COUNT(*) AS count
FROM table_name
WHERE timestamp_column >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 10 DAY))
GROUP BY date
ORDER BY date;
```
其中,`timestamp_column`是存储时间戳的字段名,`table_name`是表名,`DATE_SUB(NOW(), INTERVAL 10 DAY)`表示当前时间往前推10天的时间点,`FROM_UNIXTIME()`函数将时间戳转换为日期时间格式,`DATE()`函数将日期时间格式的数据转换为日期格式,`GROUP BY`子句按日期进行分组统计,`COUNT(*)`统计每个日期的数据量,`ORDER BY`子句按日期排序。
在MySQL中,现有A、B、C、D、E五张表,表A、B、C分别有:公司,出港数量两个字段,表D、E分别有:公司、进港数量两个字段。已知A、B、C、D、E五张表中的公司数量不完全相同,求汇总出各个公司的出港数量和进港数量的sql实现
以下是可以实现该功能的SQL查询语句:
SELECT A.公司, SUM(A.出港数量) AS 出港总量, SUM(DE.进港数量) AS 进港总量
FROM A LEFT JOIN B ON A.公司 = B.公司
LEFT JOIN C ON A.公司 = C.公司
LEFT JOIN (SELECT 公司, SUM(进港数量) AS 进港数量 FROM D GROUP BY 公司) AS DE ON A.公司 = DE.公司
LEFT JOIN E ON A.公司 = E.公司
GROUP BY A.公司
阅读全文